出品|开源中国 文|白开水 微软的 Java 工程组宣布开源了 GCToolkit,一组用于分析 Java garbage collection (GC) 日志文件的库。 根据介绍,GCToolkit 工具包将 GC 日志文件解析为离散事件,并提供了一个API 用于从这些事件聚合数据,使用户能够对由垃圾收集日志表示的 Java 虚拟机(JVM)中托管内存的状态进行任意复杂的分析。 GCToolkit 由 3 个 Java 模块组成,涵盖 API、GC 日志文件解析器和基于 Vert.x 的 messaging backplane。 其中,API 模块是 GCToolkit 的入口;它把使用解析器和 Vert.x 分析 GC 日志文件的细节隐藏在几个方法调用中。解析器模块是一个正则表达式和代码的集合;微软方面称,经过多年的发展,其已经成为最强大的 GC 日志解析器。 基于 Vert.x 的 messaging backplane 使用了 2 条消息总线,第一条消息总线来自数据源。当前的实现是从 GC 日志文件流式传输 log lines。这条总线上的监听器是将数据源的数据转换为代表 GC 周期或安全点的事件的解析器。然后这些事件被发布在事件总线上,事件总线上的监听器能够接收和处理他们感兴趣的事件。 GCToolkit 还提供了一个简单的聚合器/聚合框架,用于捕获和分析 GC 日志文件数据。