В настоящее время большинство основных браузеров приступили к интеграции оптимизирующих компиляторов JIT с их интерпретаторами/виртуальными машинами. Это хорошо для всех. Теперь мне было бы трудно узнать, какие именно оптимизации они выполняют, и как их лучше всего использовать. Что такое ссылки на оптимизацию в каждом из основных движков JavaScript?
Фон:
Я работаю над компилятором, который генерирует JavaScript с более высокого уровня и более безопасного языка (бесстыдный плагин: он называется OPA, и он очень круто), и, учитывая размер приложений, которые я создаю, я бы хотел, чтобы мой код JavaScript был таким же быстрым и максимально эффективным с точки зрения памяти. Я могу обрабатывать высокоуровневые оптимизации, но мне нужно знать больше о том, какие исполнения выполняются, чтобы узнать, какой низкоуровневый код принесет наилучшие результаты.
Один пример, с моей точки зрения: язык, который я собираю, скоро интегрирует поддержку лени. Могут ли двигатели JIT хорошо себя вести с ленивыми определениями функций?