• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема с памятью ( Createthread?)

  • Автор темы xykapec
  • Дата начала
Статус
Закрыто для дальнейших ответов.
X

xykapec

Всем доброго времени суток.

В общем, у меня есть програмка написаная так чтобы можно было компилировать и в windows и в linux.

Под windows програмка работает нормально, но вот в linux потр*цензура*ет слишком много памяти.
Програмка работает через потоки. Как я понял именно поток занимает слишком много памяти.
Наприпер при 22 потоках она забивает 220мб.
В windows при 140-ка потоках програмка знаимает 40мб максимум.

Вот кусок кода ответсвенный за открытие нового потка:

Код:
#ifndef WINDA
void newthread(void* func, void* p)
{
pthread_t	ThrId;
pthread_attr_t	tattr;

pthread_attr_init(&tattr);
pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);
pthread_create(&ThrId, &tattr, func, p);
pthread_attr_destroy(&tattr);
//pthread_detach(ThrId);
}
#else
void newthread(void* func, void* p)
{	  
CloseHandle( CreateThread( NULL, 0, (unsigned long (_stdcall*)())func, p, 0, NULL) );
}
#endif

Я не очень соображаю в программированнии, поэтому прошу Вашей помощи.
Есть 20wmz в качестве вознаграждения.


Большое Спасибо!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!