Главная страница
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.01 c
2-1224146235
Vunda
2008-10-16 12:37
2008.11.23
панель в OLE


2-1223626290
asders
2008-10-10 12:11
2008.11.23
Преобразование вирт. кода HotKey в строковые значения комб.клавиш


2-1224054726
Zalumhan
2008-10-15 11:12
2008.11.23
ListView2.Items.Delete


2-1224054082
cosinus@bk.ru
2008-10-15 11:01
2008.11.23
Вывод из неконсольного приложения в консоль...


2-1223710893
deras
2008-10-11 11:41
2008.11.23
Как синхронизировать одну таблицу двух разных БД?