我对分析应用程序以提高性能有点陌生。我已选择 YourKit 作为我的分析器。毫无疑问,YourKit 提供了非常有趣的统计数据。我遇到困难的地方是如何处理这些统计数据。
例如,考虑一个对 JAXB POJO 进行操作的方法。该方法遍历 POJO 以访问深深嵌套在 XML 中的标记/元素。这需要 4 层 for 循环才能到达元素/标签,如下所示:
List<Bundle> bundles = null;
List<Item> items = null;
for(Info info : data) {
bundles = info.getBundles();
for(Bundle bundle : bundles) {
items = bundle.getItems();
//.. more loops like this till we get to the required element
}
}
YourKit 告诉我,上面的代码是一个“热点”,每次调用包含此代码的方法都会收集 80 个对象的垃圾。上面的代码只是一个例子,并不是我卡住的唯一部分。大多数时候,我不知道如何处理分析器提供的信息。我可以做些什么来减少上述代码中临时对象的数量?是否有任何明确的原则可以提高应用程序的性能?分析应用程序时要查找哪些统计信息以及每种统计信息有什么含义?
编辑:分析应用程序的主要目标是增加吞吐量和响应时间。当前吞吐量仅为所需吞吐量的 10%!