X
xykapec
Всем доброго времени суток.
В общем, у меня есть програмка написаная так чтобы можно было компилировать и в windows и в linux.
Под windows програмка работает нормально, но вот в linux потр*цензура*ет слишком много памяти.
Програмка работает через потоки. Как я понял именно поток занимает слишком много памяти.
Наприпер при 22 потоках она забивает 220мб.
В windows при 140-ка потоках програмка знаимает 40мб максимум.
Вот кусок кода ответсвенный за открытие нового потка:
Я не очень соображаю в программированнии, поэтому прошу Вашей помощи.
Есть 20wmz в качестве вознаграждения.
Большое Спасибо!
В общем, у меня есть програмка написаная так чтобы можно было компилировать и в 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 в качестве вознаграждения.
Большое Спасибо!