我在一个应用程序中工作,我们使用XML和组件扫描混合来定义如何将依赖关系连接在一起。
启动应用程序需要大约一到三秒,这或多或少都可以。但是,对于功能测试,我们启动它几百次。你可以猜到其余的......
我想知道是否有任何性能比较可用于比较基于XML,组件扫描和基于@configuration bean的Spring应用程序上下文的启动性能。
我打算制作一个小型沙箱项目,以便在几天内没有得到答案时找出哪个性能更好。
先谢谢你们。 陶
答案 0 :(得分:2)
不要担心哪个启动配置更快,而是查看测试工具可能更有效。
如果功能测试都可以在相同的Spring配置中运行,那么为什么不加载一次呢?该文档讨论了此特定问题:http://static.springsource.org/spring/docs/current/spring-framework-reference/html/testing.html#testing-ctx-management
减少加载文本上下文的次数,您将获得更快的整体测试时间。如果有一些原因导致某些测试需要个性化的初创公司,那么很好,在他们自己的环境中加载它们。
答案 1 :(得分:1)
最后我花了10分钟,然后在这个主题上做了一个小小的高峰。
我创建了一个新项目(spring templates - > Simple Spring Utility Project)并对其进行了一些修改。
在测试包中,我添加了三个测试用例。
每个测试用例创建了1000次应用程序上下文。
结果:
这意味着带有AnnotationConfigApplicationContext的@Configuration比其他两个快约40%。
我需要注意的是,我不认为这种测量在任何时候都是准确的或精确的。依赖层次结构太简单了(只有一个bean),但我仍然希望AnnotationConfigApplicationContext成为三者中最快的解决方案。