記憶體管理之一 (轉)
Memory Management(管理)
:namespace prefix = o ns = "urn:schemas--com::office" />
GlobalMemoryStatus
此用於獲得當前實體記憶體和虛擬記憶體的使用情況。
如果想要獲得擴充套件虛擬地址空間,或者是您的執行在一臺有超過4GB主記憶體的機器上,那麼請使用/editor/memman_77p4.htm">GlobalMemoryStatusEx 函式來達到類似的要求。
函式宣告如下:
VOID GlobalMemoryStatus(
LPMEMORYSTATUS //記憶體狀態結構
);
參數列:
lpBuffer : 〔輸出〕 一個指向 結構的指標。函式將當前記憶體狀況儲存到該結構中。
返回值:
無返回值
說明:
您可以使用該函式來判斷當前您可以在系統中分配到多少不會與其它程式相沖突的記憶體。
這個函式的返回是不確定的,無法保證連續兩次該函式會得到相同的返回資訊。
在一臺記憶體超過4GB的機器上,GlobalMemoryStatus 函式會返回錯誤值。2000或之後的版本會報告一個 -1 的值來表示資料。之前的版本如windosNT則報告一個對真實記憶體取4GB模的一個值。由於以上的原因,我們使用 取代該函式。
在一臺擁有大於2GB而小於4GB記憶體的 x86機器上GlobalMemoryStatus 函式總是在結構MEMORYSTATUS 成員dwTotalPhys 中返回2GB。同樣的,如果總的可用記憶體在2 - 4GB之間,結構MEMORYSTATUS 的成員dwAvailPhys 最大可能值為2GB。如果可在連線時使用”/LARGEADDRESSWARE ”連線開關,那麼函式GlobalMemoryStatus 會在以上兩個成員中返回正確的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993810/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- ORACLE記憶體管理 之一 ORACLE PGAOracle記憶體
- JAVA記憶體管理 [轉]Java記憶體
- 記憶體管理 記憶體管理概述記憶體
- 記憶體管理之五 (轉)記憶體
- 記憶體管理原始碼 (轉)記憶體原始碼
- Windows CE記憶體管理 (轉)Windows記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- 轉載——C++記憶體管理C++記憶體
- 改善SQL Server記憶體管理(轉)SQLServer記憶體
- 【記憶體管理】記憶體佈局記憶體
- 記憶體管理記憶體
- Innodb記憶體管理解析[轉載]記憶體
- FreeBSD VM核心記憶體管理(轉)記憶體
- 段頁式記憶體管理(轉載)記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Aerospike的bin記憶體管理--即列記憶體管理ROS記憶體
- [轉帖]Solaris記憶體管理以及判定記憶體是否夠用的方法記憶體
- Linux 管理員手冊(4)--記憶體管理(轉)Linux記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- Linux 記憶體管理:記憶體對映Linux記憶體
- AIX虛擬記憶體管理機制(轉)AI記憶體
- 記憶體管理-swMemoryGlobal記憶體
- OC記憶體管理記憶體
- iOS 記憶體管理iOS記憶體
- JavaScript 記憶體管理JavaScript記憶體
- MySQL記憶體管理MySql記憶體
- Oracle 記憶體管理Oracle記憶體
- JavaScript記憶體管理JavaScript記憶體
- Oracle9i的實體記憶體管理(轉)Oracle記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 虛擬8086模式的記憶體管理(轉)模式記憶體
- Guru of the Week 條款09:記憶體管理(上篇) (轉)記憶體