如何委托方法这么慢?

时间:2014-08-05 12:33:55

标签: java profiling jvisualvm

我有几种方法被jvisualvm

的分析器表示为慢速

enter image description here

不幸的是,由于方法是

,我无法看到可以改进的地方
    public int getDimensionValue(int index) {
        if( !containsDimension(index) ) {
            throw new IndexOutOfBoundsException();
        }
        return delegate.getValue(index);
    }


    public boolean containsDimension(int index) {
        return delegate.contains(index);
    }

假设contains真的很慢,但如果只是调用它,调用者怎么也会变慢呢?

Self time意味着没有时间或被包括在内的时间吗?

1 个答案:

答案 0 :(得分:0)

在解释VisualVM的输出时要小心:如果你正在查看"热点"列表,您只看到方法内部花费的总时间,,无论呼叫计数。现在看一下实际的通话数:它们是非常庞大的数字。所以在你的情况下,方法并不慢,它们只是被大量调用。这确实表明总体性能将从这些方法变得更快中受益最多,但它根本没有说这些方法很慢。它们可能会尽可能快,这意味着您已经拥有了最佳程序。