如何分析 OSGi 部署的执行?
Posted
技术标签:
【中文标题】如何分析 OSGi 部署的执行?【英文标题】:How to profile the execution of an OSGi deployment? 【发布时间】:2010-03-10 17:01:02 【问题描述】:我开始为一个应用程序开发一个 OSGi 包,该应用程序将部署在具有一些硬件限制的设备中。我想知道如何分析该捆绑包的执行情况,以始终确保它符合最终设备中的依赖关系。最好有一个分析器来了解每个捆绑包使用了多少内存、定位瓶颈并比较同一服务的不同实现。
是否有任何用于 OSGi 部署的分析器,或者我应该使用通用 Java 分析器吗?
对于开发,我使用 Pax runner 和 Apache felix 来运行包和 maven 来管理项目依赖项和构建。
【问题讨论】:
【参考方案1】:我的公司为嵌入式设备开发 OSGi 应用程序。不幸的是,我不知道有任何工具具有您正在寻找的所有功能。我可以告诉你我们如何处理你正在寻找的问题。
1) 适配设备:我们在 Eclipse 中开发并使用 Equinox 进行部署。我们在 Eclipse 中使用 .product 文件进行构建。通过这样做,我们可以清楚地了解我们的程序将在设备上占用的磁盘/ROM 空间量。
2) 对于分析,我们通常使用 YourKit。那里还有其他优秀的 Java 分析器,但我们发现这个对我们很有效。
您可以做的一个很好的技术是构建一个服务版本,作为真实服务的代理。代理是插入计时代码的好地方,这样您就可以计算对每个服务方法进行了多少次调用,并确定每次调用的时间。您还可以通过这种方式根据参数对时间进行分类,以找到性能不佳的边缘情况。然后,当您准备好部署时,您可以取出代理。
祝你好运。
【讨论】:
谢谢你,一个非常有趣的答案,我会试试你的建议。 YourKit 真的很有用,我可以通过 CPU 分析器查看内存使用情况和时序信息。我还发现了一篇不错的帖子,其中包含一些关于 OSGi 分析的提示:osgilab.org/2010/03/osgi-tips-osgi-profiling-yourkit.html。谢谢!以上是关于如何分析 OSGi 部署的执行?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 maven 项目轻松部署到 Karaf Osgi 容器
如何使用 Maven 将第 3 方 OSGi 捆绑包添加到部署包中?
来自 Adobe 的用户体验专家 AEM 之:构建并部署 OSGi bundle