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

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

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

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

测量结果

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

在一台四核 Intel Xeon 2.66 GHz 机器上,启动时间从 68 秒减少到 12 秒,提升了 5.6 倍。

但是,其他一些系统并没有达到相同的改进水平。例如,在一台双核 Intel Core i7 2.66 GHz 机器上,启动时间从(极快的)15.4 秒减少到 14.2 秒,只提升了 8%。

更改

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

这显然是一种权衡,但我们相信许多用户将受益于更高的速度,并且很少(如果有的话)会错过被抑制的日志条目。

其他更改

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加快您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部