Java 性能优化视频笔记

https://thestrangeloop.com/2017/the-performance-engineers-guide-to-java-hotspot-virtual-machines-execution-engine.html
这个视频其实和她的那本书基本是一致的, 加了些那年比较新的东西.

  1. JDK 是我们开发用的开发工具集, 里面包含 JRE 和一些工具, 比如 jps, cmd, JVisualVM 等;
  2. JRE 是 Java 运行时引擎, 是 Java 代码跑起来的必要设施. 它处于用户代码和 OS 之间;
  3. API 是我们的代码和 JRE 之间的接口;
  4. JRE 里面主要的功能是 编译 和 内存管理, 所以 JRE 层面的优化主要是编译和内存管理(heap)方面;
  5. Java 的内存管理主要是管理 内存的分配和内存的回收 -> 内存管理算法 -> CMS, G1, etc;
  6. 编译分为 静态编译 和 动态运行时编译;
  7. JIT 优化: 提前编译, 分层编译, 基于已搜集信息的编译(profile-based), 启发式编译;
  8. Java 代码是先翻译(javac 成 class 文件字节码)然后再部分编译(JIT);
  9. JRE(运行时)的主要目的就是把字节码转换成操作系统 native 代码;
  10. 内存分配-> 快速分配 -> TLAB & PLAB;
  11. 锁: 偏向锁, 轻量锁, 锁膨胀, 锁消除;
  12. 代码: inline, 逃逸分析, 代码消除, 栈上分配, 寄存器分配;
  13. String 实现的优化 itern();

标签: none

添加新评论