spring javaconfig,xml config和注释之间的性能差异

我们的Spring配置包含大约1200个bean,我们使用component-scan / @ Autowired。 如果我们将ApplicationContext导出为Xml(并且仍然使用@Autowired),我们在上下文启动时节省了大约10%。

如果我们尝试使用spring javaconfig,我们可以期待什么?

注释和XML之间可能不同,但相反,它将是使用组件扫描的启动性能,这慢。 如果您将组件扫描添加到XML版本,您应该会发现它同样慢。

我使用XML,注释和Java配置做了一个天真的基准测试。 结果令人惊讶(Java配置较慢)。 我不知道这是否与你的情况有关,基准是他们的……

http://www.jroller.com/kenwdelong/entry/is_spring_javaconfig_faster

我猜的有点少,因为没有解析会发生(注释是用reflection’解析’,xml – 用xml解析器)。

但是,这不应该是选择一个配置选项而不是另一个配置选项的原因。 启动时间对性能不重要。

我实际上曾经尝试了一段时间,令人沮丧的是它没有更快……或者至少不能更快地感知到。 在某些情况下,当我实际测量它的速度较慢时(非常轻微)。 我希望我有数字,但这是为了我自己的利益而进行的快速测试之一。 我也没有1200豆,但大约200。

我还注意到混合XML和Java配置给出了最糟糕的性能(非常轻微)。

我发现我的Spring启动时间的瓶颈是Hibernate。 我正在使用JDBC进行与Hibernate相同配置的大部分相同项目,启动时间约为1/3。