V8 может быть частью вашей архитектуры, где вы можете управлять временем жизни файлов сценариев JavaScript и фрагментов сценариев. И некоторые из основных инструментов, которые мы используем, также включают движок V8, такой как Google Chrome, Node.JS, MongoDB, NativeScript и т. д.
Если вам нужно учитывать V8 в своем программном проекте и движке JavaScript, вы можете оптимизировать этот гигант как во время компиляции, так и во время выполнения.
Обычно оптимизация времени компиляции V8 была выполнена, но для времени выполнения это позволяет нам немного настроиться.
В следующей статье упоминается node.js, в основе которого также используется движок V8;
https://flaviocopes.com/node-runtime-v8-options/
Согласно этому списку, во время работы JS Engine вы можете указать следующие параметры командной строки.
--expose_gc --jitless --allow-natives-syntax --no-expose-wasm --no-harmony-sharedarraybuffer --stack-size=4096 --builtins-in-stack-traces
- безудержный; это ядро, и особенно для iOS режим jitless помогает нам избежать критических ошибок, которые возникают в случае, когда приложение не может работать на реальном устройстве. Apple также предлагает использовать такой режим для скомпилированных движков JavaScript.
Возьмите другие справочные ссылки;
https://github.com/schuay/v8-on-ios/blob/master/v8-ios-objc/Runtime.mm
- разоблачить-васм; https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
- sharedarraybuffer: https://exploringjs.com/es2016-es2017/ch_shared-array-buffer.html
- встроенные функции в трассировках стека; показывать встроенные функции в трассировках стека
В Node.JS также предполагается, что;
https://blog.heroku.com/node-habits-2016#7-избегайте мусора
Node (V8) использует ленивый и жадный сборщик мусора. С его пределом по умолчанию около 1,5 ГБ он иногда ждет, пока это абсолютно необходимо, прежде чем высвобождать неиспользуемую память. Если использование вашей памяти увеличивается, это может быть не утечка, а скорее обычное ленивое поведение узла.
Чтобы получить больший контроль над сборщиком мусора вашего приложения, вы можете указать флаги для V8 в вашем Procfile
:
web: node --optimize_for_size --max_old_space_size=920 --gc_interval=100 server.js
Это особенно важно, если ваше приложение работает в среде с менее чем 1,5 ГБ доступной памяти. Например, если вы хотите приспособить узел к контейнеру размером 512 МБ, попробуйте:
web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js
Так что есть много параметров для настройки двигателя V8. И это может потребоваться в будущем для повышения производительности.
Спасибо за прочтение