JVM总结

生产环境发生了溢出如何处理

生产hprof文件,用mat等工具分析是否发生内存泄漏

在没发生溢出时可以通过jmap把内存映像打印出来,可以通过多次分析定位问题

生产环境应该给服务器分配多少内存合适

可以通过jstack可以查看每隔一段时间内存发生的变化,应用稳定后,可以看到每块内存的占用情况,jvisualvm,tomcat-manger等

如何对垃圾收集器的性能调优

不同垃圾收集器有不同的调优策略,串行,并行,并发(CMS、G1)

重要衡量指标:吞吐量、最大停顿时间

调优目标:保证吞吐量的时候,降低最大停顿时间

生产环境CPU负载飚高如何处理

死循环、IO等待(wait)

用jstack可以jvm中所有的线程,使用top命令可以找到cpu飚高的线程id,可以看到cpu飚高的线程在做什么操作,判断是否线程不够,还是线程发生等待,还是死循环……

生产环境应该给应用分配多少线程合适

用jstack观察线程状态,假如给应用分配100个线程,100个线程全是runnable,说明线程不够,需要加服务器,如果是10个runable,80是wait,说明有等待的情况,可能需要异步的操作来提高应用的性能……通过分析线程的状态,来确定分配多少个线程合适

不加log如何确定请求是否执行了某一行代码

Btrace

不加log如何实时查看某个方法的入参与返回值

Btrace

JVM字节码是什么东西

用javap将class文件打印出相应的字节码指令,基于栈的架构

循环体中做字符串+拼接为什么效率低

因为每次都要new stringBuilder对象进行append

字符串+拼接一定是StringBuilder.append吗

Constant Variable(带final的String)

.intern()(String的字面常量)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值