Скомпилируйте JavaScript в собственный код с помощью V8

Действительно ли возможно с помощью Google V8 Engine скомпилировать JavaScript в собственный код, сохранить его в виде двоичного файла и выполнять его, когда захочу, через мою программную среду на любой машине?


person Alon Gubkin    schedule 02.06.2010    source источник
comment
stackoverflow.com/questions/1152367/   -  person Iggy Kay    schedule 03.06.2010


Ответы (3)


Вы можете использовать функцию моментальных снимков V8 для предварительной компиляции кода. Это по-прежнему означает, что у вас должна быть запущена полная версия V8 для загрузки моментального снимка (т. е. вы не получаете автономный нативный код, его нужно запускать внутри виртуальной машины V8), поэтому все, что вы экономите, — это время компиляции. . Кроме того, качество кода моментального снимка не обязательно такое же хорошее, как у JIT-кода, потому что JIT-код может использовать, например, SSE2/SSE3, если он доступен, чего не могут предполагать моментальные снимки.

person Lasse Reichstein    schedule 22.06.2010

Насколько мне известно, V8 — это исключительно компилятор точно в срок. , и не имеет параметра опережения.

Как обсуждалось в статьях, на которые я ссылался, JIT обеспечивают лучшую и более гибкую оптимизацию.

person Matthew Flaschen    schedule 02.06.2010
comment
НО JIT должен завершить задачу своевременно. Поэтому они должны избегать дорогостоящих (время и ресурсы, такие как память) операций. - person Christian; 18.12.2012

Вместо этого можно использовать компилятор .NET JavaScript/JScript для создания .NET exe, а затем преобразовать .NET exe в собственный .exe с помощью Моно опережающий компилятор.

person Jack Nock    schedule 03.06.2010
comment
Как примечание для тех, кто еще не пробовал Mono AOT и был очень взволнован, как и я: он не поддерживает Windows. Однако он работает на любом Linux, так что кто знает, может быть, это изменится. - person Camilo Martin; 14.01.2013