Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.23;
Скачать: CL | DM;

Вниз

Как получить размер оперативки компа?   Найти похожие ветки 

 
TStas ©   (2008-02-04 22:00) [0]

Надо это вот зачем. Есть приложение, которому реально нужно дохрена памяти. Понятно, что бесконечно все равно не получится. А от использования файла подкачки начнет тормозить, притом сильно. Вот, если используемая память заведомо меньше оперативки, тогда подкачка будет использоваться редко, если вообще будет. А для этого ее надо как-то получить.


 
TStas ©   (2008-02-04 22:45) [1]

Вопрос снят. Вот так:
Procedure GetMemSize(out TotalSize, AvailSize: Integer);
Procedure GetMemSize(out TotalSize, AvailSize: Integer);
var
 Status: _MEMORYSTATUS;
begin
 GlobalMemoryStatus(Status);
 TotalSize := Status.dwTotalPhys;
 AvailSize := Status.dwAvailPhys;
end;

Function TotalByteSize: Integer; //Размер в байтах
var
 X: Integer;
begin
 GetMemSize(Result, X);
end;
Только я не совсем понял, что подразумевается под доступной памятью, но заметил, что её объем меняется.


 
хам   (2008-02-04 22:48) [2]

VOID GlobalMemoryStatus(

   LPMEMORYSTATUS lpBuffer  // pointer to the memory status structure  
  );


Parameters

lpBuffer

Points to a MEMORYSTATUS structure in which information about current memory availability is returned. Before calling this function, the calling process should set the dwLength member of this structure.


 
Loginov Dmitry ©   (2008-02-06 00:13) [3]

Используй такую функцию:

function AvailMemory: Double;
var
 MemInfo: TMemoryStatus;
begin
 MemInfo.dwLength := Sizeof(MemInfo);
 GlobalMemoryStatus(MemInfo);
 Result := Min(MemInfo.dwAvailPhys +
   Int64(MemInfo.dwAvailPageFile), Int64(MemInfo.dwAvailVirtual));
end;


 
Loginov Dmitry ©   (2008-02-06 00:16) [4]

Но это ни в коем случае не страхует от EOutOfMemory, если ты попытаешься выделить очень большой непрерывный блок памяти.



Страницы: 1 вся ветка

Текущий архив: 2008.11.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
2-1223702031
Vinum
2008-10-11 09:13
2008.11.23
Измерить отрезок времени


2-1223812028
jonin
2008-10-12 15:47
2008.11.23
Удаленное управление компьютером


15-1222424019
TUser
2008-09-26 14:13
2008.11.23
Несказка для программистов


1-1202506594
Ukrainec
2008-02-09 00:36
2008.11.23
Как изменить цвет item a в TCheckListBox?


2-1223894446
Сергей
2008-10-13 14:40
2008.11.23
Как скопировать файл любого формата в буфер?