首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Virtual Memory for a no-op程序?

Java Virtual Memory for a no-op程序?
EN

Stack Overflow用户
提问于 2012-01-11 08:23:34
回答 2查看 291关注 0票数 3

对于下面的无操作码,

代码语言:javascript
复制
public class a {
public static void main(String args[]) throws Exception{
Thread.sleep(100000);
}
}

如果我在64位jvm上运行它,通过"top“我可以看到它使用了2 2GB的虚拟内存。是什么占用了这些虚拟内存?这个例子可能有点奇怪,但是我们确实看到一些生产代码使用了大量的虚拟内存,以至于它超过了ulimit -v。

谢谢杨

EN

回答 2

Stack Overflow用户

发布于 2012-01-11 08:27:18

虚拟内存并不意味着它实际上已被分配和使用。这仅仅意味着它有那么多当前可寻址的地址,以便在需要时使用。

票数 4
EN

Stack Overflow用户

发布于 2012-01-11 15:58:44

当您启动一个Java应用程序时,它会在启动时创建它的堆(最大大小)。最近的Sun/Oracle JVM的缺省大小是主内存的1/4。这听起来很浪费,除非它所做的一切都是保留地址空间。考虑到每个应用程序都有自己的地址空间,这并不重要。(除非您有一个地址空间有限的32位JVM )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8812522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档