The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"как ограничить потребление виртуальной памяти в приложении"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"как ограничить потребление виртуальной памяти в приложении"  
Сообщение от Serega_S email(ok) on 09-Июн-06, 07:31 
Есть проект (консольный чат) на Си/С++. Использование оперативной памяти - примерно 1,4 Мб. При этом использование виртуальной памяти доходит до 70 Мб! Используется динамическая загрузка библиотек (парочка небольших модулей). Думал уже какие-то большие утечки памяти - проверил ccmalloc-ом - общая выделенная память порядка 400 Кб, ну и утечек нашёл на 60 Кб. Это я всё пофиксю, но вот как бороться с 70Мб виртуальной памяти? На моём ноутбуке проект не запускается (ноут с 32 ОЗУ - malloc вываливается с ошибкой).

Вопрос - как можно разобраться в этом?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "как ограничить потребление виртуальной памяти в приложении"  
Сообщение от Serega_S email(ok) on 09-Июн-06, 09:48 
pmap даёт такую картину:

27099:   ./govorilka
08048000    148K r-x--  /data/work/Linux/work_c/network/govorilka/client/govorilka
0806d000      4K rw---  /data/work/Linux/work_c/network/govorilka/client/govorilka
0806e000    564K rw---    [ anon ]
b4d52000      4K -----    [ anon ]
b4d53000   8192K rw---    [ anon ]
b5553000      4K -----    [ anon ]
b5554000   8192K rw---    [ anon ]
b5d54000      4K -----    [ anon ]
b5d55000   8192K rw---    [ anon ]
b6555000      4K -----    [ anon ]
b6556000   8192K rw---    [ anon ]
b6d56000      4K -----    [ anon ]
b6d57000   8192K rw---    [ anon ]
b7557000      4K -----    [ anon ]
b7558000   8192K rw---    [ anon ]
b7d58000     20K r-x--  /lib/libgpm.so.1.19.0
b7d5d000      4K rw---  /lib/libgpm.so.1.19.0
b7d5e000    224K r-x--  /lib/libncurses.so.5.4
b7d96000     32K rw---  /lib/libncurses.so.5.4
b7d9e000      4K rw---    [ anon ]
b7d9f000     48K r-x--  /data/work/Linux/work_c/network/govorilka/client/modules/mpi_ncurses/mpi_ncurses.so
b7dab000      4K rw---  /data/work/Linux/work_c/network/govorilka/client/modules/mpi_ncurses/mpi_ncurses.so
b7dac000      8K rw---    [ anon ]
b7dae000   1092K r-x--  /lib/libc-2.3.5.so
b7ebf000      4K r----  /lib/libc-2.3.5.so
b7ec0000     12K rw---  /lib/libc-2.3.5.so
b7ec3000      8K rw---    [ anon ]
b7ec5000     32K r-x--  /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libgcc_s.so.1
b7ecd000      4K rw---  /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libgcc_s.so.1
b7ece000    132K r-x--  /lib/libm-2.3.5.so
b7eef000      8K rw---  /lib/libm-2.3.5.so
b7ef1000    784K r-x--  /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6.0.3
b7fb5000     20K rw---  /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6.0.3
b7fba000     20K rw---    [ anon ]
b7fbf000      8K r-x--  /lib/libdl-2.3.5.so
b7fc1000      8K rw---  /lib/libdl-2.3.5.so
b7fc3000      4K rw---    [ anon ]
b7fc4000     56K r-x--  /lib/libpthread-2.3.5.so
b7fd2000      4K r----  /lib/libpthread-2.3.5.so
b7fd3000      4K rw---  /lib/libpthread-2.3.5.so
b7fd4000      8K rw---    [ anon ]
b7fd7000     36K r-x--  /data/work/Linux/work_c/network/govorilka/client/modules/mproto_tcp/mproto_tcp.so
b7fe0000      4K rw---  /data/work/Linux/work_c/network/govorilka/client/modules/mproto_tcp/mproto_tcp.so
b7fe1000     84K r-x--  /lib/ld-2.3.5.so
b7ff6000      4K r----  /lib/ld-2.3.5.so
b7ff7000      4K rw---  /lib/ld-2.3.5.so
bfbe1000     84K rw---    [ stack ]
ffffe000      4K -----    [ anon ]
total    52664K

Вот что это за куски по 8 Мб? Я так думаю это на каждый поток тратиться... Но 8 Мб... Не слишком ли много?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "как ограничить потребление виртуальной памяти в приложении"  
Сообщение от daff (ok) on 14-Июл-06, 12:19 
>./govorilka
>на каждый поток тратиться... Но 8 Мб... Не слишком ли много?

если libc с NPTL то

ulimit -s 256
./govorilka

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру