Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не слишком ли много памяти под pthread_create 
:(
    Опции темы
Anton Vatchenko
Дата 29.8.2008, 16:35 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: -1
Всего: -1



Вот уже год пишу сервер на си, перешел на си так как джава казалась более громоздкой (при запуске съедает половину оперативки). На си начинал хорошо... Программа кушала всего 2-5 метров при запуске. Затем скомпилированный файл вырос до размера 144 кб, и стал кушать где-то 8 метров. Вот только почему-то вызов каждого потока стал оочень много отбирать... Не знаю как будет если просто вызывать программу, но у меня при отладке в gdb каждый поток отбирает где-то 8 мб, что очень страшно. И при выходе из потока они не возвращаются, хотя пишет [Thread -1246327904 (LWP 21834) exited]. И иногда в списке потоков остаются те, которые уже сообщили exited. Или GDB корявый, или что-то не так я пишу?
Исходник показывать смешно... Он под метр... Да и не буду же раскрывать свою работуsmile


--------------------
user posted image
PM MAIL   Вверх
MAKCim
Дата 29.8.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN);

Добавлено через 1 минуту и 21 секунду
Цитата(Anton Vatchenko @  29.8.2008,  16:35 Найти цитируемый пост)
И при выходе из потока они не возвращаются

и не будут
libpthread.so кэширует стеки для возможного повторного использования


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Anton Vatchenko
Дата 29.8.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: -1
Всего: -1



Вот где-то видел эту установку для стека в инете уже... А не повредит ли это коду? То есть этот стек в плане размера статический, или этот размер типа "Минимальный размер стека, и если понадобится больше - ядро его увеличит"?


--------------------
user posted image
PM MAIL   Вверх
bsa
Дата 30.8.2008, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Anton Vatchenko, мы маны не читаем?
Цитата
SYNOPSIS
       #include <pthread.h>

       int pthread_attr_getstacksize(const pthread_attr_t *restrict attr,
              size_t *restrict stacksize);
       int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
DESCRIPTION
       The pthread_attr_getstacksize() and pthread_attr_setstacksize() functions, respectively, shall get and set the thread  cre‐
       ation stacksize attribute in the attr object.

       The stacksize attribute shall define the minimum stack size (in bytes) allocated for the created threads stack.

PM   Вверх
MAKCim
Дата 30.8.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(Anton Vatchenko @  29.8.2008,  18:45 Найти цитируемый пост)
 "Минимальный размер стека, и если понадобится больше - ядро его увеличит"?

увеличит
вот код ядра
код


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Loki
Дата 31.8.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Anton Vatchenko, а если не секрет сколько потоков создает сервер, на сколько расчитан?
PM MAIL   Вверх
Anton Vatchenko
Дата 5.9.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 21.5.2004

Репутация: -1
Всего: -1



Около 5 тысяч должен...


--------------------
user posted image
PM MAIL   Вверх
bsa
Дата 11.9.2008, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Цитата(Anton Vatchenko @ 5.9.2008,  11:21)
Около 5 тысяч должен...

Подозреваю, что есть ошибка на этапе проектирования. Если, конечно, ты не под кластер пишешь...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1699 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.