加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么Windows XP 32与Windows 7 64中的Java应用程序的内存使用

发布时间:2020-12-14 02:51:48 所属栏目:Windows 来源:网络整理
导读:我为录制我的工作活动写了一个小小的 Java application.因为我每天都打开它,所以最初关心我选择语言的一件事就是它会使用的内存量. 令人高兴的是,在Windows XP下,它通常在最小化时消耗大约5 MB,在最大化时大约消耗大约12 MB,并且愉快地使用-Xmx5M运行(根据Wi
我为录制我的工作活动写了一个小小的 Java application.因为我每天都打开它,所以最初关心我选择语言的一件事就是它会使用的内存量.

令人高兴的是,在Windows XP下,它通常在最小化时消耗大约5 MB,在最大化时大约消耗大约12 MB,并且愉快地使用-Xmx5M运行(根据Windows任务管理器消耗内存).

当我用更新的硬件升级我的家用电脑,同时升级到Windows 7 64(虽然我安装并使用32位JVM)时,我立即注意到此应用程序的JVM现在总是报告68 MB.根据任务经理的“工作集”,这与-Xmx5M -Xss16K有关.

旧机器和新机器都有4 GB的RAM,其中512 MB用于视频.两者都在运行Java 6的最新版本 – 关于WinXP的更新15,现在为Win7更新24.磁盘上的应用程序占用量为12 K类70 K.此外,我的工作计算机仍然是Windows XP,运行Java 6_24,并且它显示了大约12 MB这个相同的应用程序 – 并且相同我的意思是字面意思,因为这两个系统是同步的所有我的开发工具.

作为一名开发人员,我需要了解为什么我的应用程序似乎会扼杀这么多内存.

任何人都可以对此有所了解,并建议如何有意义地减少Java 6应用程序的内存占用量?

编辑

答案可能是过度的PermGen大小.根据JVisualVM,我有一堆:

Size: 5.2 MB,Used: 4.3 MB (peak) and Allocated 6.2 MB.

但对于PermGen

Size: 12.5 MB,Used: 4.6 MB (peak) and Allocated 67.1 MB.

那么,Win 7中的任务管理器中显示的68 MB是否可以简单地请求但是未分配的虚拟内存?

编辑2

将PermGen降低到12 MB对进程RAM没有影响,但JVisualVM确实显示它减少了(显然12 MB构成了某种最小值,因为低于此值对JVVM没有影响).

解决方法

64位操作系统使用64位作为指针大小,而32位操作系统使用32位.这可能只是其中一个原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读