Java | Вызов метода с Method Handles и Reflection

preview_player
Показать описание
Если сказанного не хватило:

#java #джава #урок #программирование #гайд #api #method #handles #methodhandles
Рекомендации по теме
Комментарии
Автор

Первое использование Method Handles, насколько я понимаю, не даёт выигрыша в скорости, а даже наоборот. Выигрыш будет только при последующих invoke, за счёт пропуска подготовительных стадий, уже сделанных в первый раз.

vladimirturygin
Автор

Спасибо за рассказ о Method Handles, но вот за сами измерения надо поставить жирный минус. Автор по сути померил не работу разных способов, а ... работу JIT! Такой же прирост производительности получился бы и при простом fori вызовов этого метода steps().
А с таким раскладом, как у автора, если поменять местами рефлексию и Method Handles, то тогда рефлексия станет внезапно быстрее.
Да и вообще, что за махинации с передачей в метод времени? Что в таком случае измеряется? Автор подумал над этим? Измеряется не то, что автор хотел померить, а измеряется скорость работы метода steps(), а не скорость рефлексии и Handles.
Все перечисленные косяки становятся очевидными, если взять уже не 1000 элементов, а 100 000 000, например. Тогда разница в этих "измерениях" просто исчезнет.

qwerty-hcod
Автор

Метод измерения времени работы демонстрирует как не надо делать и даёт неправильные результаты. Различие во времени выполнения в 10 раз должно было навести автора на мысль, что что-то тут не так

vladimirturygin