Каковы код и данные следы ведущих движков JavaScript? (V8, Squirrelfish, TraceMonkey..)

Поскольку скорость основных движков Javascript, кажется, находится на одном уровне, следующий критерий - след. Каковы код и данные следы ведущих движков JavaScript?

2 ответа

Squirrelfish должен занимать наименьшее количество места (я помню, я где-то читал, что он использует действительно простую таблицу перевода из кода JS в собственный код), но если вы хотите что-то очень маленькое, вы должны взглянуть на более ранние движки js (которые не используют таблицы собственного кода) поскольку они интерпретируют код, как они идут, и не компилируют все это в соответствии с текущей машиной.

Я не вижу смысла сравнивать js-движки, хотя они в основном однопоточные (хорошо, новые движки многопоточные, но это из новых "высокооптимизированных" движков), и они загружаются только один раз, а затем интерпретируют мегабайты JS-кода.... Скорость важнее, чем размер... даже для мобильных устройств, потому что я не ожидаю, что движок JS будет использовать более 1-2 Мб памяти (даже, на мой взгляд, это слишком много), но сумма Сценарии JS на странице, основанной на JS, могут легко это передать.

V8 - лучший двигатель AFAIK с более высокими показателями производительности, который имеет меньший объем памяти. V8 загружает каждый объект JS на основе контекста в память, а также использует сборщик мусора поколений, что означает, что больше оперативной памяти собирается с меньшими потерями производительности.

Если вы подразумеваете размер кода и данных в виде простого двоичного размера, V8 превосходит большинство современных высокопроизводительных движков всего с килобайтами двоичного размера.

В V8 все встроенные объекты, такие как массив, математика и т. Д., Также являются файлами JS, которые загружаются динамически. Поскольку встроенные объекты очень легки, когда они находятся на виртуальной машине, мы также можем сделать их статическим кодом, если требуется большая производительность при некоторой потере памяти.

Другие вопросы по тегам