Ohhnews

分类导航

$ cd ..
foojay原文

保持Java热度:Simon Ritter 2026年8月美国与加拿大JUG巡讲

#java#jvm性能优化#jit编译器#aot编译#开发者社区

夏季会议季逐渐平静下来。大多数重要的 Java 活动在六月份就结束了,在我们等待结果期间,CFP 也进入了沉寂期。如果我们决定继续工作,很多人会利用八月来补上积压的工作,或者进行培训(这里我指的是脑力锻炼,不过我相信你们中的一些人去健身房的频率也更高 😉)。

如果你身处美国东北部或加拿大东部,下个月有空闲时间,这或许是一个很好的理由加入你当地的社区,观看并学习一场技术分享,内容是关于我们大多数人在生产环境中都遇到过的问题。演讲者是 Simon Ritter,一位在 JVM 内部机制上深耕多年的 Java Champion。

演讲:让你的 Java 保持热力——解决 JVM 启动与预热问题

准备好应对 JVM 启动难题,让你的 Java 应用从一开始就平稳快速地运行。

Java 字节码和类文件实现了“一次编写,到处运行”的原始愿景。使用即时(JIT)编译器,基于 JVM 的应用可以只编译频繁使用的代码,并针对其使用方式进行精确优化。利用投机优化等技术,往往能带来比静态的提前编译(AOT)代码更好的性能。

然而,这种灵活性和性能是有代价的。每次 JVM 启动一个应用时,它都必须执行相同的分析来识别代码中的热点并进行编译。这被称为应用预热时间。

在本次演讲中,我们将探讨几种缓解甚至消除这一问题的方法。具体来说:

  • 对 Java 代码进行提前(AOT)静态编译,特别是 Graal 原生镜像(Native Image)方法。
  • 生成正在运行且已预热应用的 JIT 编译器配置文件,并在同一应用重启时复用该配置,从而省去大部分 JIT 编译工作。这将包括 OpenJDK Project Leyden 的相关工作细节。
  • 面向云环境将 JIT 编译器与 JVM 解耦。提供集中式 JIT 即服务(JIT-as-a-Service),可以缓存已编译代码,并在需要编译新代码时卸载编译工作。
  • 为运行中的应用创建检查点(Checkpoint)。除了 JIT 编译代码之外,这还包括所有应用状态(堆、栈等)。将以 Project CRaC 作为示例。

在演讲结束时,你将掌握让 Java 保持“热力”的全部要点!

为什么今年八月要加入你本地的 JUG?

八月往往是比较安静的月份,因此这可能是绝佳的时机,花一个晚上来学习一个在下次排查冷启动问题时至关重要的主题,而不是在会议间隙草草浏览。如果你有一段时间没参加本地 JUG,这也是回归的好借口;如果你从未参加过,也可以借此机会第一次加入——这些社区非常值得参与,而且知名讲者带来的专题演讲在其他地方通常无法免费听到。你可以当面见到 Simon 并与他交流,这意味着你可以真正问出那些平时只能通过谷歌搜索答案的问题,而且你会遇到满屋子正在与同样问题斗争的人,这本身就是一种学习。到场、倾听、提问,然后再和旁边的人聊一聊。

完整巡回活动详情

日期JUG注册方式
8月4日New York Java SIG在 Meetup 上注册
8月5日Garden State JUGgsjug.org
8月6日Montreal JUGmeetup.com/montreal-jug —— 活动页面尚未发布,请关注该群组以获取公告
8月25日Ottawa JUG在 Meetup 上注册
8月27日Toronto JUGmeetup.com/toronto-java-users-group —— 活动页面尚未发布,请关注该群组以获取公告

我们期待在那里见到你!

本文《Keeping Java Hot This Summer: August 2026 US & Canada JUG Tour with Simon Ritter》最初发布在 foojay 上。