Virgo 里程碑 M02 启动性能提升5倍

工程 | Glyn Normington | 2010年7月08日 | ...

Virgo 2.1.0.M02-incubator 现已可供下载。除了完成“入门指南”外,此里程碑显著缩短了启动时间 - 在某些系统上甚至高达5倍。

这应该进一步激励dm Server用户迁移到Virgo:Virgo是未来开发的 codebase,拥有更宽松的许可,现在提供更快的启动速度。

测量

我们测量了Virgo Web服务器在热启动(即不带-clean)时的运行时间,并将里程碑M02与M01进行了比较。

在四核英特尔至强 2.66 GHz 机器上,启动时间从 68 秒减少到 12 秒,提高了 5.6 倍。

然而,其他一些系统并未达到相同的改进水平。例如,在双核英特尔酷睿 i7 2.66 GHz 机器上,启动时间从(非常快的)15.4 秒减少到 14.2 秒,仅提高了 8%。

更改

性能分析显示,内存日志记录是启动过程中的主要热点。然而,我们过去几年在实际应用和开发过程中的经验表明,内存日志记录在实践中几乎没有用处。内存日志缓冲区仅在转储中可见,但当发生转储时,转储的其他内容总是比日志条目更有趣和有用。除了内存日志记录的开销之外,用于记录内存日志条循环缓冲区可能会使垃圾回收更频繁,并增加标记活动对象的成本。

这显然是一个权衡,但我们相信许多用户将受益于速度的提升,并且很少(如果曾有)会怀念被抑制的日志条目。

其他变更

  • 避免了在入口/出口日志方面使用“cflowbelow”
  • 抑制了(经过充分测试且可靠的)artifact repository 组件的方法入口/出口日志记录
  • 抑制了 getter 和 setter 方法的方法入口/出口日志记录

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有