еще есть проблема в том, что я точно не спец по жаве, поэтому даеж если я намеряю какие-то цифры, будет большой вопрос, насколько они соответствуют правде, тк я могу что-то зафакапить в настройках жавы, например
в моей ситуации, у меня нет "моего" ворклоада. Мне надо происследовать, насколько жава может быть ускорена нашими фичами и насколько от этого всем станет хуже
И перед разработчиками jit (сужу по докладам из оракл, интела, грааля, азул, IBM j9) почти никогда они не подымают тему скорости самого jit, всегда упор идёт на то насколько эффективным получается финальный код
Graal выходит на пиковую производительность ещё позже чем C2, по мере работы потребляет больше памяти и cpu, но финальный код получается более оптимальный во многих случаях и может выпилить вагон алокаций объектов, там где С2 пасует и будет создавать мусор
У j9 они показывали свой мемори лайоут для объектов, такие недовалуе тайпы, на некоторых ворклоадах полученный код оказывется заметно быстрее, так как не нужно лишний раз по ссылке переходить
И практически нигде не было обсуждения вопросов "сколько мы ресурсов используем чтобы достичь этого результата", так как хоть лимит у jit на работу и есть, но все больше рассказывают о нем лишь мельком, всем интересно насколько быстрый код получится на выходе
Проблему сбора профиля и выход на пиковую производительность в azul решают записывая этот профиль на диск, дальше на старте перечитали с начала до конца, посмотрели где оптимизации подтвердились, где откатывались, собрали jit'ом нужные методы. Вот тут как раз наверное единственный пример когда время старта напрямую зависит от скорости jit
Это да, всегда интересовало есть ли откат когда профиль поменялся, но на trap с деоптимизациями не натыкаешься, все говорят что просто медленней будешь :(
Это да, всегда интересовало есть ли откат когда профиль поменялся, но на trap с деоптимизациями не натыкаешься, все говорят что просто медленней будешь :(