|
|
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
Собственно вопрос в заголовке топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 22:43 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
1. Количество RAM через GlobalMemoryStatus (поищи в Инете самостоятельно - материала навалом). 2. Понятие "свободная RAM" в Windows практически отсутствует как таковое. Способов его определить лично я не знаю, хотя по памяти много копался. Да и "свободная RAM" ничего толком тебе не дает, ибо параметр этот может измениться мгновенно: только-только после загрузки Винды и открытия броузера у меня было свободно 80 мегов, но вот загружен, скажем Фотошоп с нехилой картиночкой и свободного RAMа Системный монитор мне показал 75 КИЛОБАЙТ!!!). И представь себе, что под твой процесс Винда оставила столько, сколько посчитала нужным. И при переключении между задачами этот размер сильно меняется. И вообще, RAM для прикладного программиста в Windows не существует! Есть только ВИРТУАЛЬНАЯ память... Есть виртуальная память системы , которая теоретически равна размеру твоего диска (свободная дисковая память - под виртуальную память, файлы можно "прикрутить" как проецируемые и не занимать таким образом свободную дисковую память (грубо говоря, только Win2k), исполняемые файлы, которые проецируются по определению). Еще есть виртуальная память твоего (или чужого) конкретного процесса , и ее общий размер может варьироваться в зависимости от версии ОС и дополнительных условий. А по поводу RAM... Вся выделенная виртуальная память (страничная, проецируемая, исполняемая) обязательно проходит через RAM - как только она понадобилась - грузится в оперативку, как только понадобилось что-то другое, и другое грузится, как только понадобилось что-то третье, а оперативка уже вся забита, то первое или второе сбрасывается из оперативки на диск или просто сбрасывается и в освободившийся RAM запихивается то, что понадобилось... При этом повлиять на этот процесс практически невозможно (можно назначить память, не сбрасываемую в своп, но это прерогатива драйверов и всяких низкоуровневых сервисов) Что-нибудь еще? Или, вернее так: Что конкретно? ;) //типа, скажи чего ты хочешь, и, возможно, я отговорю тебя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 01:20 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 01:26 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
Ладно, бог со свободной.Это понятно , что это величина переменная. Нужно мне в окне "о программе" отображать сколько на компе оперативки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 08:49 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
2 Alexander G Спасибо за ссылку, все работает. Определяет размер RAM,свободной RAM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 09:11 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
работающий примерчик Dim MemorySet, Memory Set MemorySet = GetObject("winmgmts:").instancesOf("Win32_LogicalMemoryConfiguration") For Each Memory In MemorySet MsgBox "Total:" & Memory.totalPhysicalMemory / 1024 & vbNewLine & _ "Virtual:" & Memory.totalVirtualMemory / 1024 & vbNewLine & _ "Page:" & Memory.totalPageFileSpace / 1024 Next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 10:04 |
|
||
|
Подскажите API функцию для определения количества RAM и свободной RAM.
|
|||
|---|---|---|---|
|
#18+
2XT >GetObject("winmgmts:").instancesOf("Win32_LogicalMemoryConfiguration") - WMI только на NT. Юзера по 98/Ме - отдыхают - данная служба м.б. и не разрешена к запуску (правда, тогда "Сведения о системе" не работают - но не которых админов это не останавливает) Считаю, что если есть возможность сделать что-либо без применения сторонних компонентов (служб, библиотек) через WinAPI Либо стандартными средствами языка - то надо делать через WinAPI (стандартными средствами языка), тем самым повысив работоспособность и устойчивость программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 10:52 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32376612&tid=1677206]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
183ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 535ms |

| 0 / 0 |
