当前位置: 首页 > jvm
  • 前天碰到一个有点怪异的case,应用运行一段时间后,RT会开始突然下降,只要重启就恢复。原因应用会采用groovy来加载一些脚本,在这些脚本修改后会动态更新,而且更新的是比较频繁的,导致Code Cache 增加,以至于满了,另一方面是Code Cache是不会回收的,所以会累积的越来越多,导致性能下降。

    阅读全文
    Java 977 人阅读 抢沙发 , , , , , ,
  • constant类型的static final变量,在编译为字节码阶段就会直接被替换为对应的值,这里有个小小的坑是可能会碰到的,就是编译的时候只编译了对应的static final变量的代码,但没重编译相应引用的代码,那就悲催了,运行的时候还会是之前的值。

    阅读全文
    Java 392 人阅读 抢沙发 , , ,
  • 需要查看目前-Xss的大小,例如在这个例子中-Xss太大,导致连20个线程都无法创建,因此可解决的方法是降低-Xss的大小;如果Xss使用的是默认值,那么可通过jstack来查看下目前Java进程中是不是创建了过多的线程,或者是java heap太大,导致os没剩多少内存,从而创建不出线程。

    阅读全文
    Java 542 人阅读 抢沙发 , , , ,
  • 在分析OOM问题时,一方面是依赖OOM时dump出来的文件,但这个文件其实只会在Java进程中第一次出现OOM时生成,之后再OOM就不会生成了,这有可能出现真实的OOM的原因被假的OOM原因给掩盖掉;另一方面是依赖在出现OOM时的人工操作,这种人肉方式其实比较杯具。先等到频繁Full GC、OOM,首先通过jmap –histo来看看到底什么对象占用了大部分的内存(需要多执行几次,以确保正确性),原生的类型,那就只能借助dump文件来分析了,通过jmap –dump手工dump出Heap文件。

    阅读全文
    Java 1,173 人阅读 抢沙发 , , , , ,