![](http://webcf.waybackmachine.org/web/20200801011712im_/https://habrastorage.org/getpro/habr/avatars/741/45e/bea/74145ebeab7f222cce402aed2683f9d7.png)
Как реализованы JIT-компиляторы
- Блог компании Mail.ru Group,
- Высокая производительность,
- Программирование,
- Анализ и проектирование систем,
- Компиляторы
- Перевод
![](https://webcf.waybackmachine.org/web/20200801011712im_/https://habrastorage.org/webt/l2/dj/ej/l2djej_af2wenjo1zb_qzrjb2ea.jpeg)
В этой статье мы поговорим о подробностях реализации и работе разных JIT-компиляторов, а также о стратегиях оптимизации. Обсуждать будем достаточно подробно, однако многие важные концепции опустим. То есть в этой статье не будет достаточной информации, чтобы прийти к обоснованным заключениям при любых сравнениях реализаций и языков.
Чтобы получить базовое представление о JIT-компиляторах, почитайте эту статью.
Небольшое примечание:
Я часто буду описывать поведение оптимизации и утверждать, что она, вероятно, есть и в каком-нибудь другом компиляторе. Хотя я не всегда проверяю, есть ли эта оптимизация в другом JIT (иногда всё неоднозначно), но если знаю точно, то укажу на это. Я также приведу примеры кода, чтобы показать, где может быть применена оптимизация, но это не точно, ведь приоритет может быть отдан другой оптимизации. Могут быть и какие-то общие упрощения, но не больше, чем в большинстве подобных постов.