2015-11-07 1 views
1

Я бегу программы Java с следующим параметром:Unterstanding Java PrintInlining Параметр

-XX: + UnlockDiagnosticVMOptions -XX: + PrintInlining

Я получаю этот выход:

@ 83 java.util.LinkedList::getFirst (22 bytes) 
    @ 13 java/util/NoSuchElementException::<init> (not loaded) not inlineable 

Что это значит?

Означает ли это, что код getFirst является встроенным, а исключение не включено?

Или это означает, что getFirst и исключение не являются общими?

Вот код: GetFirst

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/java/util/LinkedList.java#LinkedList.getFirst%28%29

Тот же вопрос здесь:

@ 99 java.util.LinkedList::peek (18 bytes) 

встраиваемыми ли это?

http://planet.jboss.org/post/inline_all_the_things

На этой ссылке, есть суффикс "инлайн (горячий)". В моем примере суффикса нет. Что это значит?

+0

Cold вы добавить свой код? Похоже, вы хотите получить элемент, которого нет (пустые коллекции и т. Д.), – user1722245

ответ

0

В коде для LinkedList::getFirst вы увидите, что он создает NoSuchElementException. Таким образом, виртуальная машина пытается включить вызов.

Однако, как представляется, правило, что исключение инициализаторов не встраиваемыми - в моих журналах PrintInlining, Oracle JDK 8 явно помечает эти строки, как это:

@ 11 java.lang.NullPointerException::<init> (6 bytes) don't inline Throwable constructors 
Смежные вопросы