Comments 5
Спасибо за этот справочник. Может быть пригодится.
+1
Нужно отметить, что не все из перечисленных методов являются интринсиками в прямом смысле, то есть, вовсе не обязательно, что JIT подставляет вместо вызова особый код. Некоторые компилируются как обычные Java методы, а их упоминание в
Например,
vmSymbols.hpp
обусловлено необходимостью отличить их в рантайме по другой причине.Например,
Method.invoke
отмечен, чтобы не учитывать его в security check при обходе стека. Наличие Throwable.fillInStackTrace
служит хинтом для Escape Analysys, а Unsafe.park/unpark
и вовсе напрасно отмечены.+4
Их упоминание в vmSymbols.hpp обусловлено необходимостью отличить их в рантайме по другой причине.Выглядит костыльно. Дополню статью этим комментарием.
Throwable.fillInStackTrace
начиная с JDK 9 вовсе убрали из списка интринсиков.+1
О да, насчёт fillInStackTrace
совсем не удивлён. Нам его тоже приходится специально обрабатывать, например, при выводе чистоты методов по байткоду. Слишком уж он вездесущ, чтобы его просто проигнорировать.
+1
Про интринсик
опубликовал разбор задачи с JBreak: Разбор перформансных задач с JBreak (часть 4).
_dpow java.lang.Math.pow(double, double)
опубликовал разбор задачи с JBreak: Разбор перформансных задач с JBreak (часть 4).
0
Sign up to leave a comment.
Полный перечень intrinsic-функций в HotSpot в JDK 7, 8, 9 и 10