有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何理解和优化工厂方法的高自时间

我分析了用例的cpu使用情况,并查看了调用树中最大的调用时间贡献者。在那里,我偶然发现了一种自我时间相当高的方法。请看这里:

Call tree

我检查了这个方法,发现了下面的代码

    @Override
    public IArticleDataProvider getArticleDataProvider() {
        return new ArticleDataProvider();
    }

该方法除了实例化之外,不做其他事情。调用树显示,实例化本身并不慢——没有黑魔法——那么我如何理解117ms的延迟呢?我重新运行我的用法,第二次使用时,它在微秒之内,正如预期的那样。而且不再需要clinit了,这是有道理的。 我知道单样本并不是一个很好的性能基准,只是深入潜水的一个起点,但这是在分析时可以预期的吗?至少它在异常点检测中大喊一声。 这听起来不仅仅是jvm预热问题,对吗? 这里有更多的因素需要考虑吗

这是我第一个使用java评测的真实案例。我之前参加了几次关于java评测的讲座,并阅读了一些指南。我感谢所有的反馈


共 (1) 个答案

  1. # 1 楼答案

    它看起来只是类加载所需的时间。时间不包括在节点中,后者只是静态初始值设定项的调用