JVM 调优和 Java 优化听起来很相似,都旨在提高应用程序性能。但他们采取完全不同的方法来实现他们的目标。

JVM 调优和 Java 优化听起来很相似,都旨在提高应用程序性能。但是 JVM 调优和 Java 优化这两个术语经常互换使用,但两种做法之间存在重要区别。简而言之,JVM 调优需要在吞吐量和响应时间等指标之间进行权衡。同时,Java 优化在成功实施后会整体改进系统。

Java 虚拟机 (JVM) 调优需要稳定的内存、处理器速度、网络带宽和托管应用程序。该系统必须在关键绩效指标 (KPI) 方面具有既定历史。用户必须有记录的指标,例如吞吐量、延迟、响应时间和每秒最大事务数。然后,JVM 或应用程序调优涉及对单个参数、配置或环境变量进行更改,然后量化更改对系统的影响。

在正确配置的 JVM 上,性能调优通常涉及不同指标之间的权衡。例如,当你增加堆大小时,你会减少垃圾回收周期的数量。但这会增加 stop-the-world 停顿的长度。以类似的方式,增加应用程序使用的线程数可能会增加争用块并导致死锁。

在完全优化的 Java 环境中,JVM 性能调优不可避免地意味着以牺牲另一个指标为代价来改进一个指标。这是一场零和游戏,尽管某些配置将提供比其他配置更好的用户体验和资源利用率。

JVM 性能调优例程的常见目标包括:

最大堆大小

最小堆大小

元空间大小

垃圾收集类型

日志配置

同步策略

页面大小

幸存者比率

字符串压缩

当你调整这些 JVM 调优选项时,你会看到对各种 KPI 的影响,包括启动速度、方法延迟、吞吐量、垃圾收集暂停时间、应用程序抖动和每秒事务。调优的目标是在这些 KPI 之间取得最佳平衡。他们采取完全不同的方法来实现他们的目标。

JVM 调优与性能优化

性能优化不同于 JVM 调优。

Java 优化涉及识别性能不佳或行为不端的代码、框架、库、配置,甚至可能是硬件。一旦你将某个组件确定为优化目标,你就可以对系统进行返工和重新测试。如果 Java 性能优化目标成功修复,系统整体性能会更好,这里的指标之间没有任何权衡,完成 Java 性能优化后,你的系统应该会运行得更好。

Java性能优化步骤

优化通常涉及以下步骤:

识别一个可能表现不佳的组件。

使用 Java Flight Recorder 或 VisualVM 等 JVM 分析工具获取运行时指标。

对已识别的组件进行更改,直到其性能提高。

使用优化的 Java 组件重新部署应用程序。

Java 优化目标

有多种方法可以优化 Java 性能。一种常见的方法是消除应用程序瓶颈。为此,请按照下列步骤操作:

使用最合适的集合类。

删除糟糕的编程实践,如原始类型自动装箱。

减少从 Hibernate 和 JDBC 数据库调用返回的数据。

消除导致线程阻塞和死锁的同步方法。

消除导致 Java 内存泄漏的开发实践。

JVM 调优和 Java 性能优化是应用程序生命周期中的重要活动,它们最大限度地提高应用程序性能并增加本地硬件或云计算资源的吞吐能力,它们应该是组织 DevOps 战略的关键部分。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部