java中举个JVM内存溢出的例子看看,谢谢
答案:2 悬赏:50 手机版
解决时间 2021-04-13 17:49
- 提问者网友:最爱你的唇
- 2021-04-13 10:26
java中举个JVM内存溢出的例子看看,谢谢
最佳答案
- 五星知识达人网友:酒安江南
- 2021-04-13 11:20
List list = new ArrayList();
while(1==1) {
list.add("xxxxxxxxxxxxxxx");
}
while(1==1) {
list.add("xxxxxxxxxxxxxxx");
}
全部回答
- 1楼网友:西风乍起
- 2021-04-13 11:48
-xmx java heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-xms java heap初始值,server端jvm最好将-xms和-xmx设为相同值,开发测试机jvm可以保留默认值;
-xmn java heap young区大小,不熟悉最好保留默认值; -xss 每个线程的stack大小,不熟悉最好保留默认值;
2
2. 如何分配jvm内存设置:
(1)当在命令提示符下启动并使用jvm时(只对当前运行的类test生效): java -xmx128m -xms64m -xmn32m -xss16m test (2)当在集成开发环境下(如eclipse)启动并使用jvm时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的jvm内存分配): -vmargs -xms40m -xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-xmn,-xss,另外,eclipse.ini内还可以设置非堆内存,如:-xx:permsize=56m,-xx:maxpermsize=128m.
此处设置的参数值可以通过以下配置在开发工具的状态栏显示: 在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showheapstatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容: -debug options -vm javaw.exe
重新启动eclipse,就可以看到下方状态条多了jvm信息.
b. 打开eclipse-窗口-首选项-java-已安装的jre(对在当前开发环境中运行的java程序皆生效)
编辑当前使用的jre,在缺省vm参数中输入:-xmx128m -xms64m -xmn32m -xss16m
c. 打开eclipse-运行-运行-java应用程序(只对所设置的java类生效) 选定需设置内存分配的类-自变量,在vm自变量中输入:-xmx128m -xms64m
选定需设置内存分配的类-自变量,在vm自变量中输入:-xmx128m -xms64m -xmn32m -xss16m
注:如果在同一开发环境中同时进行了b和c设置,则b设置生效,c设置无效,如:
开发环境的设置为:-xmx256m,而类test的设置为:-xmx128m -xms64m,则运行test时生效的设置为: -xmx256m -xms64m
(3)当在服务器环境下(如tomcat)启动并使用jvm时(对当前服务器环境下所以java程序生效): a. 设置环境变量: 变量名:catalina_opts
变量值:-xmx128m -xms64m -xmn32m -xss16m
3
b. 打开tomcat根目录下的bin文件夹,编辑catalina.bat,将其中
的%catalina_opts%(共有四处)替换为:-xmx128m -xms64m -xmn32m -xss16m
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯