Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Несколько наносекунд прироста производительности не имеют смысла никакого.Ну так челик не сделает этого, он сделает все по тутору без кеширования и с этим уе*ищным юзлесс классом RefletionUtil, который почему-то все дауны везде суют. Надо делать по-нормальному, кэшируя и через MethodHandle, он намного быстрее.
Ну бред себе внушил про неск наносекунд) Каждый раз доставать Method/Field это тебе не неск наносекунд, + каждый вызов будет делать проверку доступа + каждый метод через N вызовов будет генерировать класс в рантайме для прямого вызова, а генерация класса в рантайме оч затратная операция по сравнению с вызовами метода рефлексией, так что если методов много, то это довольно не оч. В любом случае MethodHandle удобней и быстрее старой рефлексии.Несколько наносекунд прироста производительности не имеют смысла никакого.
По поводу меняющихся методов - можно делать вызов разных методов в зависимости от версии.Тут нет смысла в рефлекии, обфнутый метод меняется от версии к версии. Все равно пойдете переписывать. Да и прямой вызов быстрее.
Конечно же имеется ввиду, что доставаться они будут только один раз, использоваться - множество.Ну бред себе внушил про неск наносекунд) Каждый раз доставать Method/Field это тебе не неск наносекунд
С таким же успехом меняется импорт под новую версию, если уже в сурсы залез.По поводу меняющихся методов - можно делать вызов разных методов в зависимости от версии.
Ну так рефлексия сосет и по удобности и по произволительности. Дальше ищи опровдания тому, что застрял на java 6. Удачи вручную переопределять accessible и вручную снимать final с полей.Конечно же имеется ввиду, что доставаться они будут только один раз, использоваться - множество.
И здесь рефлекция проигрывает не меньше чем в 5 раз в среднем (судя по бенчмаркам из разных сурсов).
Если один вызов из рефлекции будет занимать 10 наносекунд, а вызов из хендла - 3 наносекунды, при этом учитывай сколько здесь будет будет событий чтобы отображать в чат вещь? Допустим 100 раз в секунду. Вместо 1000 наносекунд мы потратим 300 за секунду, а это 0.0007 ms. Ну что? Не будет теперь лагать сервер? Здесь только обработка события будет в разы больше занимать.
Потому как бы сама идея говорить что юзай 100500 директ NMS классов для разных версий вместо одной рефлекции бредовая, когда не идет речи о сильно интенсивных вызовах и конечно же не инициализации Method / Field etc каждый раз.
Офк я не осуждаю чтобы кто то юзал MethodHandle вместо рефлекции, а лишь хочу показать суть необъективной оценки прироста производительности.
Есть кейсы где нужна мультиверсионная поддержка, а писать реализации для каждой версии не оч хочеца, а так для своего прямые вызовы из нмс дергать и збс.С таким же успехом меняется импорт под новую версию, если уже в сурсы залез.
Не страдаю таким. Да и это все делается генерацией прокси классов на асме, по нормальному. Так скорость не теряется.Есть кейсы где нужна мультиверсионная поддержка
Рефлексия сама генерирует классы если вызовы частые, но операция генерации класса в рантайме оч затратная, как я уже писал. Прокси классы собсна лучший выход да.Не страдаю таким. Да и это все делается генерацией прокси классов на асме, по нормальному. Так скорость не теряется.
Как не пытайся, не добиться скорости как у прямого вызова.Рефлексия сама генерирует классы если вызовы частые, но операция генерации класса в рантайме оч затратная, как я уже писал. Прокси классы собсна лучший выход да.
Поэтому надо юзать губку 👍Как не пытайся, не добиться скорости как у прямого вызова.