【问题标题】:Tips on making PAX (OSGI testing) framework faster加快 PAX(OSGI 测试)框架的技巧
【发布时间】:2011-08-26 03:11:01
【问题描述】:

我知道 PAX 正在做很多事情,创建容器并复制所有这些 jar 并不便宜,但有任何提高性能的一般技巧。我有一些测试可以在几分之一秒内在容器外执行,而在容器内则需要更长的时间。我主要使用 PAX 来验证我的清单是否准确,并且该捆绑包可以部署而不会丢失任何依赖项。我尝试过 Knopflerfish、Equinox、Felix,总的来说,它们对于准系统无容器运行来说相对较慢。

【问题讨论】:

    标签: java pax pax-runner


    【解决方案1】:

    正如您所意识到的,底层容器并没有太大的区别。

    如果您想动态创建最小的捆绑包,您可以尝试Pax Tinybundles:如果这适用于您的情况,您可以构建一组最小化的捆绑包,其中仅包含您实际测试所需的内容。例如,您可以只打包您的清单。我自己并没有为此特定目的对其进行基准测试,但值得一试。

    作为旁注,请注意 Pax Exam 2.3 引入了对 @Before 和 @After 的支持(请参阅 here),从而为您提供更灵活的负载设置/拆卸。

    【讨论】:

      【解决方案2】:

      使用 Native Container 比 Pax Runner Container 更快,节省了启动外部进程的开销。

      使用 EagerSingleStagedReactorFactory 节省了为每个测试重新启动框架的开销。

      为避免复制 JAR,首选 mvn: URL 或 mavenBundle() 而非通用 URL,一旦下载包,将从本地 Maven 存储库获取包。

      Pax Exam 2.3.0 中的一个新功能是参考:协议,它允许您在不复制的情况下就地配置包 - 这甚至适用于分解的包(即解压缩的目录结构)。

      【讨论】:

        猜你喜欢
        • 2015-06-14
        • 1970-01-01
        • 2010-09-11
        • 2011-05-25
        • 1970-01-01
        • 2012-02-13
        • 2010-09-26
        • 1970-01-01
        • 2017-10-07
        相关资源
        最近更新 更多