JAVA应用性能监控与调优

为什么需要学习Java应用性能监控和调优

首先,我们在平时开发环境下,一般不怎么关心性能优化,偶尔注意一些高效的编程方法。但是在生产环境下,由于生产环境很复杂,会导致应用出现各种各样的问题,例如硬盘坏了、网络坏了、CPU利用率过高等,都会导致应用出现卡顿和不可用等一系列问题。同时生产环境出现问题不好进行定位,我们无法随便对生产环境中的应用进行重启,增加日志和更换jar包。所以,掌握对JAVA应用的性能监控与调优十分重要。
监控和调优可以解决哪些问题呢?

  1. 生产环境发生内存溢出如何处理?
  2. 生产环境应该给服务器和应用匹配多少内存合适?
  3. 如何对垃圾收集器的性能进行调优?
  4. 生产环境CPU负载飙高该如何处理?
  5. 生产环境应该给应用分配多少线程合适?
  6. 不加log的情况下,如何确定请求是否执行了某一行代码?
  7. 不加log的情况下,如何实时查看某个方法的入参与返回值?
  8. JVM字节码是什么?
  9. 循环体中做字符串+拼接为什么效率低?
  10. 字符串+拼接一定是StringBuilder.append吗?
  11. String常量池是什么?
  12. i++与++i到底哪种写法效率更高?

掌握什么技能:

  1. 熟练使用各种监控和调试工具。
  2. 从容应对生产环境中遇到的各种个调试和性能问题。
  3. 熟悉JVM字节码指令(在源码层面,很多问题看不出什么区别,字节码层面会很清晰,因为编译器会将很多语法糖清除掉)。
  4. 深入理解JVM的自动内存回收机制,学会GC调优。
  5. 独当一面走向高级工程师很重要的一步。

学习步骤:

  1. 基于JDK命令行工具的监控。
  2. 基于JVisualVM的可视化监控。
  3. 基于Btrace的监控调试。
  4. Tomcat性能监控与调优。
  5. Ngnix性能监控与调优。
  6. JVM层GC调优。
  7. Java代码层优化。

你可能感兴趣的:(jvm,java)