Конференция "WinAPI" » Как приложению на Delphi XE определить размер выдел.памяти
 
  • Prok186 © (19.06.11 15:00) [0]
    Начиная с 8-ой версии Delphi функция определения выделенной приложению памяти AllocMemSize НЕ поддерживается (выдаёт всегда нолик). :mad:  У меня сейчас установлена Delphi XE. Что применить вместо AllocMemSize, например, чтобы вывести размер выделенной в данный момент памяти на форму?
  • Loginov Dmitry © (19.06.11 15:11) [1]
    Посмотрите в сторону GlobalMemoryStatus()
  • Prok186 © (19.06.11 15:51) [2]
    Посмотрел. Там в структуре типа _MEMORYSTATUS получаются поля, отображающее состояние ГЛОБАЛЬНОЙ памяти. Т.е. не понять, мой процесс её жрёт, или какой-то другой
  • Prok186 © (19.06.11 18:46) [3]
    Уфффф.... Сам разобрался. Вот такую несложную функцию написал
    (результат - в КИЛОбайтах):

    function MyGetAllocatedMemory: Cardinal;
    var MemoryManagerState: TMemoryManagerState;   K: Byte;
    begin
    GetMemoryManagerState(MemoryManagerState);
      With MemoryManagerState do begin
      Result :=
       TotalAllocatedLargeBlockSize + TotalAllocatedMediumBlockSize;
      For K := 0 to 54 do with SmallBlockTypeStates[K] do
       Result := Result + UseableBlockSize +
       InternalBlockSize + ReservedAddressSpace;
      end;
    Result := Result div 1024;
    end;
  • Сергей М. © (20.06.11 09:25) [4]

    > разобрался


    Ну и где в этом коде хоть какое-то упоминание о "размере выделенной в данный момент памяти на форму" ?
    Никакими "формами" в этом коде даже не пахнет.
  • Prok186 © (20.06.11 19:09) [5]
    Так задача была ОПРЕДЕЛИТЬ количество занятой данным приложением, написанном в среде Delphi XE, оперативной памяти. А вывести циферку на какой-либо компонент на форме - особых усилий не требует.
  • Сергей М. © (23.06.11 14:53) [6]
    Фривольная манипуляция порядком слов в русскоязычном предложении может существенно и даже радикально изменить его смысловое содержание)

    Обе трактовки

    > вывести размер .. на форму

    и

    > размер .. памяти на форму
    (почему бы не прочитать это как памяти, выделенной на хранение объекта-формы ?)

    имеют право на жизнь)

    А вот  

    > вывести на форму размер оперативной памяти, выделенной операционной системой в данный момент процессу приложения

    как ни крути, а извратить смысл такой формулировки - это уже надо изрядно постараться)
 
Конференция "WinAPI" » Как приложению на Delphi XE определить размер выдел.памяти
Есть новые Нет новых   [134431   +11][b:0][p:0]