Фабрис Беллар, известный разработчик проектов QEMU, FFmpeg и других, представил новый открытый проект под названием Micro QuickJS. Этот JavaScript-движок предназначен для встраиваемых систем и требует всего 10 КБ оперативной памяти для выполнения JavaScript-программ. Исходный код написан на языке C и доступен на GitHub под лицензией MIT.
Вместе с C-библиотекой движок занимает около 100 КБ постоянной памяти и поддерживает компиляцию JavaScript в байткод с возможностью его последующего выполнения. Как сообщает ресурс OpenNET, производительность Micro QuickJS аналогична QuickJS, также разработанному Белларом с 2019 года.
Micro QuickJS использует часть кода QuickJS, но отличается архитектурой, оптимизированной для экономии памяти. В отличие от QuickJS, здесь применяется трассирующий сборщик мусора, а не подсчёт ссылок, что снижает накладные расходы. Кроме того, движок не использует стек виртуальной машины, хранит строки в UTF-8 и генерирует стандартную библиотеку во время компиляции, сохраняя минимальное количество объектов в оперативной памяти. Наконец, процесс генерации байткода и оптимизации объединен в один проход, в отличие от QuickJS, где используются несколько проходов.
tasani.ru