我注意到了這個多國語言,包括爲什麼虛擬內存分配是遠遠高於居民的內存分配更高的解釋語言
- C#
- 的Java
- 的Python
- JS
和許多其他正在被解釋器解釋的語言(並且通常有一個垃圾收集器)。
當我檢查系統(unix)上的內存使用情況 - 任何系統(我在許多不同的服務器上試過)。我可以看到分配的虛擬內存和駐留內存(真正被吃掉的真實物理內存)之間的巨大差異。
這不是c或C++等語言的情況。
例如,使用30mb常駐內存的Java應用程序可以使用2GB的虛擬內存,而且這也適用於其他解釋型語言。當然,這並不是每次都會發生(所有情況下差異並不那麼大),但在大多數情況下,這個數字相當大。
或樣品(這實際上是真實的數據) C#應用MonoDevelop的使用駐留內存,但虛擬內存
的1661MB的136MB也有魯棒C++應用程序異常,例如火狐似乎有同樣的問題,並據我所知它也使用垃圾回收器以及
這是每個系統的問題,限制內存基於虛擬內存(這實際上是一種正確的方式,因爲操作系統應該保證虛擬內存已經分配給一個過程實際上可用於該過程)。
這是爲什麼?
除此之外,它取決於多少庫代碼被拉入。 –