我正在开始为一个应用程序开发一个 OSGi 包,该应用程序将部署在具有一些硬件限制的设备中。我想知道如何分析该捆绑包的执行情况,以始终确保它符合最终设备中的依赖关系。最好有一个分析器来了解每个捆绑包使用了多少内存、定位瓶颈并比较同一服务的不同实现。
是否有任何用于 OSGi 部署的分析器,或者我应该使用通用 Java 分析器吗?
对于开发,我使用 Pax runner 和 Apache felix 来运行包和 maven 来管理项目依赖项和构建。
我正在开始为一个应用程序开发一个 OSGi 包,该应用程序将部署在具有一些硬件限制的设备中。我想知道如何分析该捆绑包的执行情况,以始终确保它符合最终设备中的依赖关系。最好有一个分析器来了解每个捆绑包使用了多少内存、定位瓶颈并比较同一服务的不同实现。
是否有任何用于 OSGi 部署的分析器,或者我应该使用通用 Java 分析器吗?
对于开发,我使用 Pax runner 和 Apache felix 来运行包和 maven 来管理项目依赖项和构建。
我的公司为嵌入式设备开发 OSGi 应用程序。不幸的是,我不知道有任何工具具有您正在寻找的所有功能。我可以告诉您我们如何处理您正在寻找的问题。
1)适配设备:我们在Eclipse中开发并使用Equinox进行部署。我们在 Eclipse 中使用 .product 文件进行构建。通过这样做,我们可以清楚地了解我们的程序将在设备上占用的磁盘/ROM 空间量。
2) 对于分析,我们通常使用 YourKit。那里还有其他优秀的 Java 分析器,但我们发现这个对我们很有效。
您可以做的一个很好的技术是构建一个服务版本,作为真实服务的代理。代理是插入计时代码的好地方,这样您就可以计算每个服务方法调用了多少次,并确定每次调用的时间。您还可以通过这种方式根据参数对时间进行分类,以找到性能不佳的边缘情况。然后,当您准备好部署时,您可以取出代理。
祝你好运。