本文目录一览:
- 1、MyEclipse 10 运行不了,could not create the java virtual machine
- 2、jvm垃圾回收不了,java heap占满,导致应用频繁重启
- 3、java多线程开多少上限量。
MyEclipse 10 运行不了,could not create the java virtual machine
一般报这个错误就是内存分配的不对。在加上一行:
-Xms512m
试试看呢?
jvm垃圾回收不了,java heap占满,导致应用频繁重启
从【Heap Usage】看,老年代(concurrent mark-sweep generation)的内存使用了99%以上,相较而言,新生代还有较多剩余;
JVM参数配置中的这一条,-XX:MaxTenuringThreshold=0,使新生代Eden区域的Java对象不经过Survivor区域,而直接晋升到老年代。这增加了老年代的垃圾回收负担,而且老年代开启了碎片整理,更加耗时;
请尝试将-XX:MaxTenuringThreshold参数调大一些,让对象晚一些进入老年代;
另外,请试一下增大Java堆内存的分配量,看是否能解决问题。
【以上只是个人猜测,不知能否帮上忙。从JVM的GC日志中,也许能进一步发现问题。】
java多线程开多少上限量。
1。java的线程开启,默认的虚拟机会分配1M的内存,但是在4G的windows上线程最多也就开到300多 ,是因为windows本身的一些限制导致。
2。虚拟机给每个线程分配的内存(栈空间)是由虚拟机参数-Xss来指定的,在不同平台上对应的默认大小可以 在oracle的官方文档上查询到:
/optionX.html
其中,Linux64位默认Xss值为256K,并非1M或10M
3。一个Java进程可以启动的线程数可以通过如下公式计算:
(系统剩余内存 - 最大堆容量Xmx - 最大方法区容量MaxPermSize)/ 最大栈空间Xss
这样,4G的服务器单个进程可以开多少线程,可以粗略计算出来,大概是5000个线程。