The OpenNET Project / Index page

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




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

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

  • как ограничить потребление виртуальной памяти в приложении, !*! Serega_S, 09:48 , 09-Июн-06 (1)
    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 Мб... Не слишком ли много?




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

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