Когда я использую профилировщик в NetBeans 7.1, я не вижу ожидаемого номера вызова для своих методов.
Чтобы проверить это, я создал простую программу с тремя методами, каждый из которых вызывается десять тысяч раз.
public class profilerTest {
static int one;
static int two;
static int three;
public static void main(String args[]) {
for (int i = 0 ;i<= 10000; i++)one();
}
public static void one() {
System.out.println("one:" + one++);
two();
}
public static void two() {
System.out.println("two:" + two++);
three();
}
public static void three() {
System.out.println("three:" + three++);
}
}
Я ожидаю увидеть 10000 вызовов для каждого метода в моем моментальном снимке профилировщика, который я делаю в конце профилирования. Однако результаты, которые я получаю, дают значительно меньшее количество вызовов для каждого метода, и они также различаются для каждого из трех методов.
Мне любопытно, что вызывает это, и как можно получить фактическое количество вызовов для каждого метода.
Вот скриншот результатов:
Я еще немного покопался и нашел этот отчет об ошибке, в котором говорится о встроенных методах. и встраивание методов в компилятор java hotspot. Предлагаемое исправление заключается в использовании опции -Xint для jdk1.6. Однако в JDK 1.7 это не меняет моих результатов.