我知道 PAX 正在做很多事情,创建容器并复制所有这些 jar 并不便宜,但有任何提高性能的一般技巧。我有一些测试可以在几分之一秒的时间内在容器外执行,而在容器内则需要更长的时间。我主要使用 PAX 来验证我的清单是否准确,并且该捆绑包可以部署而不会丢失任何依赖项。我尝试过 Knopflerfish、Equinox、Felix,总的来说,它们对于准系统无容器运行来说相对较慢,几乎没有什么区别。
问问题
327 次
2 回答
1
正如您所意识到的,底层容器并没有太大的区别。
如果您想动态创建最小的捆绑包,您可以尝试Pax Tinybundles:如果这适用于您的情况,您可以构建一组最小化的捆绑包,其中仅包含您实际测试所需的内容。例如,您可以只打包您的清单。我自己并没有为此特定目的对其进行基准测试,但值得一试。
作为旁注,请考虑 Pax Exam 2.3 引入了对 @Before 和 @After 的支持(参见此处),从而为您提供更灵活的负载设置/拆卸。
于 2011-09-21T17:15:21.343 回答
1
使用 Native Container 比 Pax Runner Container 更快,节省了启动外部进程的开销。
使用 EagerSingleStagedReactorFactory 可以节省为每个测试重新启动框架的开销。
为避免复制 JAR,首选 mvn: URL 或 mavenBundle() 而非通用 URL,一旦下载了包,将从本地 Maven 存储库中获取包。
Pax Exam 2.3.0中的一个新功能是参考:协议,它允许您在不复制的情况下就地配置捆绑包 - 这甚至适用于分解的捆绑包(即解压缩的目录结构)。
于 2011-12-30T21:14:58.060 回答