微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javaw.exe进程在Windows 64消耗更多的内存?

我从Windows 7(32位)切换到Windows 7(64位),因为我添加了4 GB的RAM到我的2 GB。 现在,当我运行Eclipse Juno EE 。 在Windows任务pipe理器中,我看到进程javaw.exe正在吃〜380 MB的RAM,我以前没有看到,当我使用32位操作系统。 我甚至没有尝试吃任何项目。 我写了这个代码

public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); System.out.println(runtime.maxMemory()); }

显示了我的JVM is allocated 1 338 507 264 bytes 。

这意味着当我运行项目时,这个过程可能会消耗高达1.3 Gb的RAM?

我将来有什么问题吗?

Eclipse中debugging模式下的Apache Ofbiz中的TemplateNotFoundexception(Ubuntu)

找不到类javacard.framework.service.CardRemoteObject

Eclipse Luna在Ubuntu的新项目上崩溃

包含path在使用pathvariables时不扩展

在Windows上创build.so文件,以便在PHP中使用C ++静态库

在Eclipse中添加openCV到java buildpath

区分AltGr和Ctrl + Alt

PHP和Eclipse中设置path映射

如何在Eclipse中打开文件跳转到特定的行?

有关在亚马逊云ec2上设置git的虚拟问题

64位版本将使用-server JVM,并具有更高的认最大堆大小。 Windows 32位版本认使用-client JVM,认情况下它使用较少的资源,因为它设计为在较小的机器上运行,所以对于长时间运行的程序,结果往往较慢(客户端JVM具有较快的加载速度运行像小程序的程序)

如果您设置了最大堆大小,那么如果您有最新版本的Java 6或Java 7,则应该使用大致相同的内存量。

Runtime.maxMemory() :

返回Java虚拟机将尝试使用的最大内存量。

这是一个上限。 这并不意味着JVM预先分配了大量的内存。 当您创建对象并将其保留时,您的进程的内存使用量将会增加,直到您可以配置的最大堆大小。

在Windows任务管理器中,我看到进程javaw.exe正在吃〜380 MB RAM

有很多方面的内存使用情况:有地址空间,虚拟内存,物理内存等,根据你在任务管理器看到的列,你在那里看到的数字可能有许多不同的含义之一。

我从Windows 7(32位)切换到Windows 7(64位)

通常,64位代码的确需要比等效的32位代码更多的内存。 一方面,指针更宽,占用更多的空间。 这适用于JVM,就像它对任何其他进程一样。 但是,JVM会采取一些措施来降低影响。 一个这样的措施是CompressedOops 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐