- 浏览: 366186 次
文章分类
最新评论
-
strchi:
这个网站,什么都没有了
做小说搜索网站,这个是不是有可能会侵权的呢? -
从此醉:
楼主倒是给出解决办法啊
Java虚拟机支持的最大内存限制 -
kjmmlzq19851226:
又要增强客户体验,又要降低伪造攻击的概率,╮(╯▽╰)╭,程序 ...
Web安全测试之跨站请求伪造(CSRF)篇(图) -
zhangxinze:
linux下使用Java获取客户端ip地址?大家有何高见,我现 ...
怎样用Java来获取真实的IP地址 -
k_kid9157:
学习 感谢分享:-)
log4j的ConversionPattern参数的格式含义
最近在开发Java的程序。本来我是一直很喜欢Java的内存管理的,不需要担心分配内存,只管分配,垃圾收集器自己会给你回收内存的。现在开发的程序数据量很大,为了速度快,我准备把所有的信息加载进内存,这样可以保证快速响应。我还在反复算内存,想想自己的数据量,现在刚开始的时候应该够了(我的机器是4G内存,虽然Windows就认3.5G,但是比起我现在的数据量应该没问题)。
没想到第一个实验的程序,跑了几个小时,就遇到了Out of Memory Exception了。看看自己的虚拟机设置,我设置的是-Xms512M -Xmx1024M。想都没想,直接改成-Xms512M -Xmx2048M,结果直接就Could not reserve enough space for object heap。程序都起不来了。这才发现原来最大内存还有限制。上网搜了一下,发现很多讨论这个问题的文章。最终在BEA的DEV2DEV论坛发现了最有用的一篇http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=35704&start=0&tstart=0
这里的版主YuLimin 做了测试,得出结论:
公司 JVM版本 最大内存(兆)client 最大内存(兆)server
SUN 1.5.x 1492 1520
SUN 1.5.5(Linux) 2634 2660
SUN 1.4.2 1564 1564
SUN 1.4.2(Linux) 1900 1260
IBM 1.4.2(Linux) 2047 N/A
BEA JRockit 1.5 (U3) 1909 1902
我现在用的是JDK1.6. 0_05,测试了一下。在Client状态下最大是,我的JDK不认-Server参数,测试不了Server状态。估计差不多。
SUN 1.6.0 1442 N/a
看样子用Java想用大内存也是不可能的了。而且一般的说法是内存太大了,垃圾收集的时间就会长。这也可以理解,一般是内存不够用了才收集的,扫描2G内存比1G当然要慢多了,而且内存对象多了,估计关系是指数上升的。
下面附上YuLimin的测试方法和测试记录。
测试方法:在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。
测试记录:
我在Windows 2000 ADS上面测试内存使用的结果如下 SUN的1.2.2、1.3.1、1.4.2、1.5.0、IBM1.4.2、BEA JRockit 1.4.2
F:\JDK\1.2.2\bin>java -Xmx700000255M -version F:\JDK\1.2.2\bin>java -Xmx700000256M -version F:\JDK\1.3.1\bin>java -version F:\JDK\1.3.1\bin>REM If present, the option to select the VM must be first. F:\JDK\1.3.1\bin>REM The default VM is -hotspot. F:\JDK\1.3.1\bin>java -hotspot -Xmx1554M -version F:\JDK\1.3.1\bin>java -hotspot -Xmx1555M -version F:\JDK\1.3.1\bin>java -server -Xmx1522M -version F:\JDK\1.3.1\bin>java -server -Xmx1523M -version F:\JDK\1.3.1\bin>java -classic -Xmx2047M -version F:\JDK\1.3.1\bin>java -classic -Xmx2048M -version F:\JDK\1.4.2\bin>java -version F:\JDK\1.4.2\bin>REM The default VM is client. F:\JDK\1.4.2\bin>java -client -Xmx1308M -version F:\JDK\1.4.2\bin>java -client -Xmx1309M -version F:\JDK\1.4.2\bin>java -server -Xmx1308M -version F:\JDK\1.4.2\bin>java -server -Xmx1309M -version F:\JDK\1.4.2\bin>REM -hotspot is a synonym for the “client” VM [deprecated] F:\JDK\1.4.2\bin>java -hotspot -Xmx1308M -version F:\JDK\1.4.2\bin>java -hotspot -Xmx1309M -version F:\JDK\1.5.0\bin>java -version F:\JDK\1.5.0\bin>java -client -Xmx1492M -version F:\JDK\1.5.0\bin>java -client -Xmx1493M -version F:\JDK\1.5.0\bin>java -server -Xmx1504M -version F:\JDK\1.5.0\bin>java -server -Xmx1505M -version F:\JDK\1.5.0\bin>REM -hotspot is a synonym for the “client” VM [deprecated] F:\JDK\1.5.0\bin>java -hotspot -Xmx1492M -version F:\JDK\1.5.0\bin>java -hotspot -Xmx1493M -version F:\JDK\IBM142\bin>java -version F:\JDK\IBM142\bin>REM The default VM is client. F:\JDK\IBM142\bin>java -Xmx2047M -version F:\JDK\IBM142\bin>java -Xmx2048M -version abnormal program termination F:\BEA\JRockit\bin>java -version F:\BEA\JRockit\bin>REM The default VM is jrockit. F:\BEA\JRockit\bin>java -Xmx1617M -version F:\BEA\JRockit\bin>java -Xmx1618M -version F:\BEA\JRockit\bin>REM -jrockit to select the “jrockit” VM F:\BEA\JRockit\bin>java -jrockit -Xmx1617M -version F:\BEA\JRockit\bin>java -jrockit -Xmx1618M -version |
我的测试记录:
C:\Documents and Settings\xiaoyuma>java -client -Xmx1441M -version
java version “1.6.0_05″
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode)
C:\Documents and Settings\xiaoyuma>java -client -Xmx1442M -version
java version “1.6.0_05″
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode)
C:\Documents and Settings\xiaoyuma>java -client -Xmx1443M -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
C:\Documents and Settings\xiaoyuma>java -server -Xmx1443M -version
Error: no `server’ JVM at `C:\Program Files\Java\jre1.6.0_05\bin\server\jvm.dll’.
发表评论
-
分布式文件系统MFS(moosefs)实现存储共享(一)
2009-05-02 10:35 2655由于用户数量的不断攀 ... -
Facebook 如何管理150亿张照片
2009-05-02 10:01 1588Facebook 的照片分享很受 ... -
提高网站速度的最佳实践(2)
2008-12-06 22:27 1132今天偶尔在网上看到了这篇文章,http://developer ... -
主题:两年服务器开发的一句话经验集
2008-11-17 20:50 791<script type="text/ja ... -
Twitter的技术给我们的启发
2008-10-17 12:44 2846Twitter的水平扩展的一些 ... -
说说大型高并发高负载网站的系统架构(更新)[Michael]
2008-07-28 17:47 1150另外看Michael更新了他的 ... -
Web站点数据库分布存储浅谈
2008-07-12 21:49 1264【 前言 】网 站在Web 2.0 ... -
修正版 疯狂代码 写给WEB2.0的站长
2008-07-05 20:55 1528当互联网吵吵嚷嚷的进 ... -
session详解(转)
2008-07-05 12:20 1155目录:一、术语session二 ... -
tomcat5性能优化
2008-07-04 14:49 2338tomcat优化设置 1. 如何加大tomcat连接数 在 ... -
HTTP应答状态、概述、含义及其设置
2008-07-02 11:11 1532HTTP应答状态、概述、含 ... -
Linux下面监控系统性能的工具-vmstat
2008-07-02 10:24 2706顾名思义,vmstat是virtual ... -
NFS配置与安装
2008-06-21 17:22 3003NFS配置与安装 安装1 环境描述: * 网络环境: ... -
测试网站性能的30款免费在线工具
2008-06-14 10:47 2246你是否肯定你的网站完 ... -
Web cache 说明[翻译](转)
2008-06-02 23:00 1156原文(英文)地址: h ... -
应用OSCache提升J2EE系统运行性能
2008-05-29 21:35 949文章摘要 Cache是一种用于提高系统响应速度、改善系统运行性 ... -
提高网页的效率14条建议
2008-05-29 21:00 922Make Fewer HTTP Requests Use a ... -
浏览量比较大的网站一些使用方法
2008-05-29 20:55 1287【IT168 技术文档】 当然,提问前先将个人的一些理解分享。 ...
相关推荐
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms1024m -Xmx1024m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
如何调优JVM - 优化Java 虚拟机(大全+ 实例) 堆设置 -Xmx3550m :设置JVM 最大堆内存为3550M 。 -Xms3550m :设置JVM 初始堆内存为3550M。此值可以设置与-Xmx 相同,以避免每次垃 圾回收完成后JVM 重新分配内存。 ...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms1024m -Xmx1024m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms1024m -Xmx1024m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
aspose words for java 16.6.0最新完美破解版,无水印无文件大小限制,无使用时间限制。由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,适用于jdk6.0的环境,免费下载...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
本脚本系统主要面向内存和容量受限制较多的移动终端, 该脚本系统非常小巧(虚拟机只有一个JAVA类), 但却非常高效, 强大, 易学. 使用类似C和JAVA的混合语言语法. 编译效率非常高(编译出的指令集接近手写!), 同时提供...
Trireme内部针对此特定情况提供了很多支持: 受内存限制,许多Node.js脚本可以在单个JVM中运行。 每个脚本都与其他脚本完全隔离-一个脚本无法影响其他脚本的堆。 提供了一个沙箱,该沙箱使容器可以控制脚本如何或...
这使得Java程序更具可移植性,因为它们可以在任何能够运行Java虚拟机的机器上运行。但是,C++程序在编译时可以进行更多的优化,因此通常比Java程序运行得更快。 其次,C++允许程序员使用指针,这是一种非常强大但也...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms1024m -Xmx1024m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...
由于aspose比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms512m -Xmx512m(参考值)。如果亲们在使用过程中有任何问题,请在楼下回复即可。本人亲自破解,内含Eclipse工程,直接导入...