学习【深入理解java虚拟机】调优

时间:2022-12-28 12:58:38
调优
  • 高性能设备上部署
64位的系统,大内存会导致GC时间太长
可以使用集群来分享内存     要避免竞争同一个文件,导致IO异常也可定时任务来GC     要查看-Xmx和-Xms
  • 集群同步导致内存溢出
-XX:+HeapDumpOnOutOfMemoryError
  • 推外内存溢出
打开jstat等着2G的内存,1.6给堆,如果ajax逆向推送的话,产生很多直接内存,他不在那1.6的推里面,只能抢那0.4的空间。
直接内存不够之后不能通知gc回收,只能等待老年区满了之后full GC
  • 外部命令导致系统缓慢
rumtime.getruntime.exec()调用方法太多,到时cpu,内存等占用太多

  • 服务器jvm进程奔溃
调用别的借口,线程堆积,

  • 不恰当的数据结构导致内存占用太多
初始化100w个hashmap《long,long》 

  • window虚拟内存导致长时间停顿
-XX:+PrintGCApplicationStoppedTime 
awt项目gc时间有的时候超长,可能是最小化之后,把内存转到磁盘的虚拟内存里去了
awt项目要带-Dsun.awt.keepWorkingSetOnMinimize=true参数