Определение количество памяти используемой программой

Тема в разделе "WASM.WIN32", создана пользователем EvilsInterrupt, 16 дек 2005.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    У меня есть label назовем его lbMemValue и я бы хотел вывести в него lbMemValue->caption = кол-во_используемой_программой памяти, что бы видеть а много ли кушает памяти программа?!



    Прошу откликнуться, т.к. поиски в Рихтере и по форуму мне ничего не дал, а на сайте увидел только исследование локальной памяти процесса.
     
  2. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Если речь идет о динамической памяти выделямой через RTL - в Delphi есть переменная AllocMemSize, возможно она же есть и в CBuilder'e.
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348




    Плохо искал. Смотри у Рихтера раздел, связанный с управлением памятью. Там это есть.
     
  4. n2k

    n2k kris kaspersky

    Публикаций:
    0
    Регистрация:
    22 янв 2005
    Сообщения:
    102
    Адрес:
    Russia
    EvilsInterrupt

    уточни, что тебя _конкретно_ интересует?

    сколько виртуальной памяти ей выделено или сколько физических страниц она "съедает", когда работает?
     
  5. Ation

    Ation New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    92
    Адрес:
    Zaporozhie
    Если речь идет освоей проге, то советую почитать книгу

    Джефа Элджера "Библиотека программиста Си++".

    Там в главах, посвященных сборке мусора, можно найти для какую-нить красивую идейку, по учету памяти.

    Или просто перегрузить оператор new/delete и всё выделение памяти через них.

    И книгу эту в нете можно найти в цифре.
     
  6. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    Могу предложить метод для извращенцев.

    ZwQuerySystemInformation, не помню какой класс - информация о процессе, там есть количество памяти, которую использует процесс и счетчики производительности и др.
     
  7. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Во время работы прога каждые 3 мин. динамически выделяет массивы, и после обработки нужных данных и добавлении их Oracle она их убивает, так вот я хочу знать не кушает ли она память пока поступил соглассно совету alpet но прога не так быстро показывает динамику измениния памяти
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    EvilsInterrupt



    Для этого есть профайлеры.
     
  9. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    EvilsInterrupt

    Я наблюдал как-то интересное явление - программа занималась выделением/освобождением блоков памяти (GetMem/FreeMem), при чем довольно часто. Несмотря на то что утечек небыло - виртуальный размер программы постепенно возрастал до 45Мб (при оперировании блоками 12-128Кб).