[JVM教程与调优] 为什么要学习JVM虚拟机?

[JVM教程与调优] 为什么要学习JVM虚拟机?

JVM 在我们开发阶段不会用到,但是到了生产环境中,那么就会变得非常重要了。

为什么这么说呢?

一方面,因为我们的生产环境是比较复杂的。各种可能的问题都会出现,比如说:硬盘坏了、网络坏了、CPU利用率高了等问题层次不穷。

另外一方面,在我们生产环境出现问题,还不好进行定位。因为没法随便对我们的生产环境进行重启,没法随便对我们的生产环境

代码进行修改,没法随便对我们的生产环境进行日志的添加。所以说对生产环境进行监控是非常有必要的。

这次我们不会去讲解基于硬件的监控,主要讲解对Java应用的性能做监控和调优。

相信很多小伙伴,之前或多或少有一些了解,只是说没有系统的学习过原理,并没有真正的上手实践过。

我们这次就带着小伙伴们一起来学习 JVM 的性能调优。

面试会遇到哪些问题?

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

通过对JVM的学习你能收获什么呢?

  • 熟练使用各种监控和调试工具
  • 从容应对生产环境中遇到的各种调试和性能问题
  • 熟悉JVM的字节码指令
  • 深入理解JVM的自动内存回收机制,学会GC调优
  • 从容应对面试中关于性能调优和调试的问题
  • 独当一面走向高级工程师很重要的一步

适合人群

1.如果你还不熟悉Java应用监控调优

2.如果你对Java应用监控调优感兴趣

3.如果你想跳槽面试高级工程师

会学到哪些内容?

  • 基于JDK命令行工具的监控
  • 基于JVisualVM的可视化监控
  • 基于Btrace的监控调试
  • Tomcat性能监控与调优
  • Nginx性能监控与调优
  • JVM层GC调优
  • Java代码层调优

基于JDK命令行工具的监控

  • JVM参数类型
  • 查看运行时JVM参数
  • 查看JVM统计信息
  • jmap+MAT实战内存溢出(一定要学会)
  • jstack实战死循环与死(CPU高了,可以看的非常清楚)

基于JVisualVM的可视化监控

  • 监控本地Java进程
  • 监控远程Java进程

基于Btrace的监控调试

  • Btrace安装使用入门
  • Btrace使用详解

涉及到非常多的高级知识

Tomcat性能监控与调优

  • Tomcat远程debug
  • Tomcat-manager监控Tomcat
  • psi-probe监控Tomcat
  • Tomcat调优

Nginx性能监控与调优

  • ngx_http_stub_status监控连接信息
  • ngxtop监控请求信息
  • nginx-rrd图形化监控
  • nginx调优

这次并不详细介绍nginx,主要讲解一些nginx中的一些调优方法。

JVM层GC调优

  • JVM内存结构
  • 垃圾回收算法
  • 垃圾收集器
  • GC日志格式与可视化日志分析工具
  • Tomcat的GC调优实战

基于JDK1.8

Java代码层调优

  • JVM字节码指令与javap
  • i++与++i,字符串+拼接原理
  • 常用代码优化方法
  • 不止这些…

javap 可以打印 java 中的字节码,了解 java 的执行过程。

相信许多小伙伴都或多或少了解过上述知识,但是并不是每一个小伙伴都能够理解。这次就带着大家来一起学习!

## 推荐

  • 400道——大厂Java选择题
  • [[Java网络系列面试题]常见web攻击有哪些?]( https://mp.weixin.qq.com/s?__…
  • [[Java网络安全系列面试题] GET 和 POST 的区别在哪里?]( https://mp.weixin.qq.com/s?__…

文末

文章收录至

Github:  https://github.com/CoderMerlin/coder-programming

Gitee:  https://gitee.com/573059382/coder-programming

欢迎 关注 并star~

[JVM教程与调优] 为什么要学习JVM虚拟机?

原文 

https://segmentfault.com/a/1190000022206889

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » [JVM教程与调优] 为什么要学习JVM虚拟机?

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址