我注意到了这个多国语言,包括为什么虚拟内存分配是远远高于居民的内存分配更高的解释语言
- C#
- 的Java
- 的Python
- JS
和许多其他正在被解释器解释的语言(并且通常有一个垃圾收集器)。
当我检查系统(unix)上的内存使用情况 - 任何系统(我在许多不同的服务器上试过)。我可以看到分配的虚拟内存和驻留内存(真正被吃掉的真实物理内存)之间的巨大差异。
这不是c或C++等语言的情况。
例如,使用30mb常驻内存的Java应用程序可以使用2GB的虚拟内存,而且这也适用于其他解释型语言。当然,这并不是每次都会发生(所有情况下差异并不那么大),但在大多数情况下,这个数字相当大。
或样品(这实际上是真实的数据) C#应用MonoDevelop的使用驻留内存,但虚拟内存
的1661MB的136MB也有鲁棒C++应用程序异常,例如火狐似乎有同样的问题,并据我所知它也使用垃圾回收器以及
这是每个系统的问题,限制内存基于虚拟内存(这实际上是一种正确的方式,因为操作系统应该保证虚拟内存已经分配给一个过程实际上可用于该过程)。
这是为什么?
除此之外,它取决于多少库代码被拉入。 –