如何使程序使用虛擬內存在Windows
?如何讓程序使用虛擬內存?
我有一個很長的perl
腳本,這是使用6GB +的記憶和增加。我的機器只有8GB或RAM。這可能是由模塊中的內存泄漏引起的,但現在我無能爲力。
是否有可能使其使用虛擬內存,或者這是否僅由Windows
控制?
如何使程序使用虛擬內存在Windows
?如何讓程序使用虛擬內存?
我有一個很長的perl
腳本,這是使用6GB +的記憶和增加。我的機器只有8GB或RAM。這可能是由模塊中的內存泄漏引起的,但現在我無能爲力。
是否有可能使其使用虛擬內存,或者這是否僅由Windows
控制?
如果需要並且配置爲具有交換空間,操作系統將自動提供虛擬內存。你無法從Perl程序中控制它。
如果您的Perl程序最終有內存泄漏,它將開始交換到頁面文件。當其內存消耗導致總內存超過物理內存和頁面文件的總和時,事情會慢慢爬行,進程可能無法響應和/或崩潰。
無論如何,頁面文件的大小不能動態改變,需要重啓。唯一的長期解決方法是找到並修復泄漏。
請記住,32位程序僅限於使用2或3 GB,無論您擁有多少內存。您可能需要64位版本的Perl('perl -V:archname'輸出中的'x64')才能使用虛擬內存。它會隨着內存的需要而自動發生。 – ikegami
@ikegami這絕對是64位'perl'。它目前坐在* 7.17GB *的* 8GB *內使用RAM。我會認爲它應該在此之前交換到虛擬內存。 – CJ7
顯然,物理內存比虛擬內存更適合一切。不會減慢磁盤IO或使用它的進程;這是雙贏的。爲什麼操作系統可以使用虛擬內存,並且可以根據需要移動虛擬內存? – oldtechaa