home.social

#jitкомпиляция — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #jitкомпиляция, aggregated by home.social.

fetched live
  1. Одно лишнее if — и объект уезжает в кучу: как C2 решает, каким аллокациям не быть

    Пара new в горячем методе может вообще не попасть в кучу — а после безобидного if внезапно вернуть аллокации обратно. Разбираемся, как C2 принимает такие решения, где ломается скалярная замена и как проверить всё это через JMH и диагностические флаги JVM. Разобраться в JVM

    habr.com/ru/companies/otus/art

    #Java #JVM #HotSpot #C2 #Escape_Analysis #скалярная_замена #JITкомпиляция #аллокации_памяти #оптимизация_производительности #JMH

  2. Не подавать холодным! Прогрев JVM перед запуском трафика

    Всем привет! Меня зовут Александр, я бэкенд-инженер в Банки.ру. Пару месяцев назад мы поймали проблему, которая жила у нас довольно долго и которую мы упорно списывали на случайность. После каждой выкатки сервис первые несколько минут отвечал заметно медленнее обычного, а потом сам собой приходил в норму. Ушло около десяти релизов, прежде чем мы перестали считать это совпадением, и еще пара дней, чтобы найти настоящую причину. Ей оказался холодный старт JVM, а точнее то, что Kubernetes пускал на новые поды боевой трафик раньше, чем они были к нему готовы. Дальше расскажу, что мы видели на графиках, какие версии проверили и отбросили, что происходит внутри JVM в первые минуты жизни процесса и что мы сделали.

    habr.com/ru/companies/banki/ar

    #прогрев_JVM #холодный_старт_JVM #JITкомпиляция #readiness_probe #Kubernetes_Java #паузы_GC #Spring_ApplicationRunner #время_ответа_после_деплоя #JWarmup #latency_после_релиза

  3. Объекты в JS не бесплатные

    Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {} . [object Object] выглядит почти бесплатной абстракцией. Создал объект, напихал полей в любом порядке, удалил ненужное, передал дальше и забыл. Но, внезапно, одинаковые для тебя объекты могут оказаться разными для V8, порядок присваиваний влияет на машинный код, а “безобидный” delete оставляет после себя совсем не пустое место. Для 99% систем это не имеет значения. А вот если у тебя hot path, через который проходят десятки тысяч объектов в секунду, или ты пишешь библиотечный код, стоит знать, что V8 на самом деле делает с твоими объектами. И чего V8 там делает?

    habr.com/ru/articles/1066944/

    #JavaScript #Nodejs #V8 #hidden_classes #inline_cache #object_shape #JITкомпиляция #оптимизация_производительности #микробенчмарки #dictionary_mode

  4. Запуск JIT-бенчмарков под двоичными трансляторами

    В данной статье были проведены запуски JIT-бенчмарков под двоичными трансляторами из x86 в ARM Microsoft Prism Emulator, Apple Rosetta 2 и FEX Emulator. Также была проведена оценка влияния динамических модификаций кода на производительность двоичной трансляции.

    habr.com/ru/articles/987496/

    #jitкомпиляция #двоичная_трансляция

  5. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization

  6. Тень уязвимости: fake exploit как зеркало реальных техник

    Я пишу о том, как создала fake exploit за 7k $ - фейковая уязвимость, которая не наносит вреда, но выглядит как реальный эксплойт. Это не просто пранк, а образовательный инструмент, позволяющий понять структуру эксплойтов, изучить уязвимости и их демонстрацию. Рассматриваются out-of-bounds write, JIT spray, а также показывается, как можно создавать видимость опасных действий, не причиняя реального ущерба. Читать далее O_0 ...

    habr.com/ru/articles/904452/

    #fake #exploit #rce #шутка_юмора #reverseengineering #oob #poc #jitкомпиляция #социнжиниринг #информационная_безопасность

  7. [Перевод] За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 2)

    Новый перевод от команды Spring АйО является продолжением разговора о JIT (Just in Time) компиляции, а также дает представление о различных инструментах, позволяющих работать со скомпилированным кодом, визуализировать его и отлаживать в интерактивной форме. Перед прочтением рекомендуем ознакомиться с первой статьей из цикла статей про JIT . Во второй части мы рассмотрим: — Инлайнинг GVN (global value numbering) во время синтаксического анализа (parsing). — Использование IGV (Ideal Graph Visualizer) и rr (отладчик), чтобы посмотреть на IR и его трансформации. — Простая “идеализация” 101 * a + 202 * a в 303 * a . — Упражнения для читателя: несколько дополнительных трансформаций, которые читатель сможет проанализировать.

    habr.com/ru/companies/spring_a

    #java #hotspot #kotlin #c2 #jitкомпиляция #jitкомпилятор #jit #bytecode

  8. [Перевод] За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 1)

    Новый перевод от команды Spring АйО расскажет вам о разных уровнях JIT (Just in Time) компиляции, о преимуществах такого подхода к компиляции Java приложений по сравнению с традиционным способом, а также покажет на примерах, что происходит при компиляции приложения и какой ассемблерный и машинный код будет сгенерирован при использовании разных опций JIT компиляции.

    habr.com/ru/companies/spring_a

    #java #c2 #compiler #jit #jitкомпилятор #jitкомпиляция #bytecode

  9. Ответ на статью о «Наиболее быстром интерпретаторе»

    Недавно была опубликована статья под заголовком "Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода" . Несколько тезисов из статьи вызвали у меня сомнения в их справедливости. Об этом я попробовал написать ряд комментариев тире вопросов к указанной статье. Но основной лейтмотив всех ответов сводился к тому - "а ты напиши свою статью". Подход не столько инженерно-научный, сколько детсадовский. Мне бы хватило и содержательных ответов в формате комментариев, но как говорится - уговорили :). Итак, что же утверждается автором статьи про наиболее быстрый интерпретатор:

    habr.com/ru/articles/857342/

    #интерпретаторы #jitкомпиляция #виртуальная_машина #оптимизация #процессор #x86

Share on Mastodon

Enter the server where you have an account.