我需要知道多少物理內存的Windows機器,使用Perl。如何使用Perl或任何其他語言在Windows x86-32bit上找到確切數量的物理內存?
我試過使用Win32::SystemInfo。但是,該模塊聲明以下警告:
在具有超過2 GB和少於4 GB內存的Intel x86計算機上,MemoryStatus函數始終會爲TotalPhys返回2 GB。同樣,如果總可用內存在2到4 GB之間,則AvailPhys將向下舍入爲2 GB。
因此,在具有2-4 GB物理內存的機器上,我得到一個錯誤答案。
有沒有辦法獲得正確數量的物理內存?也許另一個模塊?或直接使用Win32::API?
編輯:從人們在這裏給出的評論,它看起來像在Win32 API中的限制,而不是特定於Win32::SystemInfo。然而,操作系統確實知道究竟是多少物理ram是可用的,所以必須有一種方法來提取信息。如果不在Perl中,那麼也許在另一種語言?
既然你有虛擬可用內存,你真的需要知道這個嗎? – Marius 2009-01-08 10:35:31
是的。通常情況下,人們希望儘可能多地使用物理內存(這會提高性能),但不會觸及交換(這絕對會殺死它)。虛擬內存很好,但爲避免許多算法而更好。 – pjf 2009-01-08 11:07:51
它聽起來不像是Win32 :: SystemInfo的限制。有關詳細信息,請參閱http://support.microsoft.com/kb/274558。 – 2009-01-08 15:22:09