Главная страница
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.016 c
2-1223906061
Terasbetoni
2008-10-13 17:54
2008.11.23
Создать MDI-child сразу при запуске программы


2-1223702031
Vinum
2008-10-11 09:13
2008.11.23
Измерить отрезок времени


2-1223561075
dmitry_12_08_73
2008-10-09 18:04
2008.11.23
Посветка SPeedButton


2-1223625754
asders
2008-10-10 12:02
2008.11.23
HotKey


4-1200835818
brotherirk
2008-01-20 16:30
2008.11.23
Свернутое чужое окно