Size: a a a

Kotlin Community

2020 April 30

AN

Alexander Nozik in Kotlin Community
Roman Ushakov
Ну например Шипилев, он много про java memory model знает, в чатике pro.jvm его можно найти
Это не имеет отношения к memory model. Это инлайнинг.
источник

RU

Roman Ushakov in Kotlin Community
Ну он не только это знает, не даром же я назвал его гуру
источник

AN

Alexander Nozik in Kotlin Community
Roman Ushakov
Ну он не только это знает, не даром же я назвал его гуру
Инлайнинг еще и в разных версиях JVM разный. Конкретно это скорее всего заинлайнится везде.
источник

RU

Roman Ushakov in Kotlin Community
Ну про это он тоже говорил, что не стоит на него сильно полагаться
источник

AN

Alexander Nozik in Kotlin Community
Рекомендация @Harmonizr про то, чтобы померить - тоже хороша. Только я бы взял не jmh, а в  обычном профайлере посмотрел потери на sqrt
источник

RU

Roman Ushakov in Kotlin Community
Ещё у меня есть гипотеза, что если jvm и сделает это, то только после 'разогрева'
источник

AN

Alexander Nozik in Kotlin Community
Roman Ushakov
Ещё у меня есть гипотеза, что если jvm и сделает это, то только после 'разогрева'
Разумеется. То, что происходит до разогрева никого не волнует. Только жава-хейтеров и фанатов консольных микро-утилок (которые зачем-то решили писать на жава)
источник

RU

Roman Ushakov in Kotlin Community
тоже верно
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
а почему бы не спросить у JMH?
Он игнорит оптимизации
источник

BP

Bogdan Panchenko in Kotlin Community
Хотя там вроде настройки есть
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
Он игнорит оптимизации
Он игнорит только мемоизацию между запусками. Такую оптимизацию он точно не игнорит
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Он игнорит оптимизации
чааааво? Какой бы в нём был смысл тогда?
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Он игнорит только мемоизацию между запусками. Такую оптимизацию он точно не игнорит
*Он знает про такие  оптимизации и умеет их учитывать при бенче
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
*Он знает про такие  оптимизации и умеет их учитывать при бенче
Так он и сделан, чтобы оптимизации тестировать
источник

BP

Bogdan Panchenko in Kotlin Community
Ну  сделаем мы бенчмарк который будет тупо делать sqrt и сравним со скоростью доступа по константе. Зачем такой бенч ?
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
*Он знает про такие  оптимизации и умеет их учитывать при бенче
да как он может знать или не знать вообще? Он просто запускает код в жвм
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
да как он может знать или не знать вообще? Он просто запускает код в жвм
Знает. Я не корректно сказал. Он "заставляет" вм не "делать" их (оптимизации)
источник

BP

Bogdan Panchenko in Kotlin Community
Bogdan Panchenko
Ну  сделаем мы бенчмарк который будет тупо делать sqrt и сравним со скоростью доступа по константе. Зачем такой бенч ?
В данном случае поможет только  бенч который будет эмулировать логику
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Знает. Я не корректно сказал. Он "заставляет" вм не "делать" их (оптимизации)
есть хоть какое-нибудь внятное объяснение того, что ты имеешь в виду?
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
есть хоть какое-нибудь внятное объяснение того, что ты имеешь в виду?
метод который обычно инлайниться. В бенче не будет инлайниться
источник