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