使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。
这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.
1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m
2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.
3.如果是linux系统
Linux 在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS='-Xms64 -Xmx512'
- 浏览: 237429 次
- 性别:
- 来自: 深圳
最新评论
-
satanrad:
非常感谢分享,我也碰见一样的问题。还以为机器上的JDK版本过高 ...
Nexus 启动报错(win7 32位 jdk1.6) -
FX夜归人:
FX夜归人 写道能不能解释下 0.50000000001?3Q ...
js格式化金额 -
FX夜归人:
能不能解释下 0.50000000001?3Q
js格式化金额 -
wzmmao:
您好,在问答频道看到您说到DHTMLX,我也是刚接触这个,不知 ...
EXTJS4.0 用法笔记~~ 3种和后台交互数据的方法
相关推荐
如您所见,brk() 或者 mmap() 都可以用来向我们的进程添加额外的虚拟内存。在我们的例子中将使用 brk(),因为它更简单,更通用。 实现一个简单的分配程序 如果您曾经编写过很多 C 程序,那么您可能曾多次使用过 ...
虚拟媒体 虚拟媒体功能将客户端的物理光驱或是ISO文件虚拟成服务器的内置光驱 来使用。 二、服务器关键部件介绍 2.1 CPU类型和应用 2.2 内存类型和应用 2.3 硬盘类型和应用 2.4 RAID技术 2.5 PCIE接口及应用 2.6 ...
如您所见, brk() 或者 mmap() 都可以用来向我们的进程添加额外的虚拟内存。在我们的例子中将使用 brk(),因为它更简单,更通用。 实现一个简单的分配程序 如果您曾经编写过很多 C 程序,那么您可能曾多次使用过 ...
PHP ini_set用来设置php.ini的值,在函数执行... ‘menory_limit’:设定一个脚本所能够申请到的最大内存字节数,这有利于写的不好的脚本消耗服务器上的可用内存。@符号代表不输出错误。 @ini_set(‘display_errors’,
系统的可用虚拟内存限制; 3.系统的可用物理内存限制。 堆的大小可以使用 java -Xmx***M version 命令来测试。支持的话会出现jdk的版本号,不支持会报错。 -Xms -Xmx一般配置成一样比较好比如set JAVA_OPTS= -Xms...
当出现本地文件系统没有可用空间或没有可用内存的情况时, Postfix就会自动放弃,而不是重试使情况变的更糟。 灵活性:Postfix结构上由十多个小的子模块组成,每个子模块完成特定 的任务,如通过SMTP协议接收一个消息...
├─2.11 Nginx进阶常见配置-set及return指令.mp4 ├─2.12 Nginx进阶基础-常见配置-return及break指令.mp4 ├─2.13 Nginx进阶基础-常见配置-location.mp4 ├─3.01 Nginx进阶配置提升-预定义变量及日志详解.mp4 ├...
举个例⼦,Redis是⼀个性能⾮常⾼的 内存Key-Value NoSQL,它⽀持List和Set、SortedSet等简单集合,如果你的数据分析需求简单地通过排序,链表就可以解决,同时总的数 据量不⼤于内存(准确地说是内存加上虚拟内存再...
1 启动内存参数的配置 tomcat/bin/catalina.bat 如果是linux 就是 catalina. sh 在rem 的后面增加如下参数 set JAVA_OPTS= -Xms256m -Xmx256m -XX:MaxPermSize=64m 2 修改Tomcat的JDK目录 打开tomcat/bin/...
2.3.5 subst——虚拟驱动器 84 2.3.6 label——创建、修改或删除驱动器的卷标 86 2.3.7 vol——卷标 87 2.3.8 mountvol——设置装入点 87 第3章 系统管理 89 3.1 屏幕显示设置 89 3.1.1 chcp——活动控制台代码页 89...
2.3.5 subst——虚拟驱动器 84 2.3.6 label——创建、修改或删除驱动器的卷标 86 2.3.7 vol——卷标 87 2.3.8 mountvol——设置装入点 87 第3章 系统管理 89 3.1 屏幕显示设置 89 3.1.1 chcp——活动控制台代码页 89...
2.3.5 subst——虚拟驱动器 84 2.3.6 label——创建、修改或删除驱动器的卷标 86 2.3.7 vol——卷标 87 2.3.8 mountvol——设置装入点 87 第3章 系统管理 89 3.1 屏幕显示设置 89 3.1.1 chcp——活动控制台代码页 89...
2.3.5 subst——虚拟驱动器 84 2.3.6 label——创建、修改或删除驱动器的卷标 86 2.3.7 vol——卷标 87 2.3.8 mountvol——设置装入点 87 第3章 系统管理 89 3.1 屏幕显示设置 89 3.1.1 chcp——活动控制台代码页 89...
2.3.5 subst——虚拟驱动器 84 2.3.6 label——创建、修改或删除驱动器的卷标 86 2.3.7 vol——卷标 87 2.3.8 mountvol——设置装入点 87 第3章 系统管理 89 3.1 屏幕显示设置 89 3.1.1 chcp——活动控制台代码页 89...
这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的其他条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。 十一、问题...
※ OOD 是一款全面的碎片整理工具,可以整理单个和/或多个驱动器、文件夹、文件的碎片,其离线整理特性(BootExecute 整合)可处理当系统运行时被独占式锁定的对象,如虚拟内存页面文件; ※ OOD 是一款 Set and ...
虚拟内存 内存漏洞 调整和优化 合理使用内存 确定还需要增加多少内存 内存升级 对CPU的调整和优化 CPU的体系结构 CPU与操作系统 监视CPU的活动 调整和优化磁盘系统 选择性能好的文件系统 FAT、FAT32、NTFS 选择先进...
31.6 set explain 31.7 有用的调整实用程序 31.8 索引标识实用程序 31.9 索引重建实用程序 31.10 更多信息 31.11 informix与其他参考资料 第32章 smi与sysmaster数据库 32.1 sysmaster概述 32.2 ...
Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符...