Node.js Runtime v8 選項列表
您在啟動 Node.js 程式時可以使用的所有選項
Node.js 可以以各種方式啟動,您可以使用許多選項來配置 Node.js 的行為。
這些選項中的大部分都用於配置 v8 引擎的行為。
這裡列出的某些選項默認情況下是禁用的,就像您在 Default 列中看到的那樣。您可以通過運行 node 並傳遞標誌來啟用它們,例如 node --experimental-extras。
如果一個選項默認是啟用的,您可以通過在標誌名稱前加上 --no- 來禁用它,例如 node --no-harmony-shipping。
一些選項可用於優化性能,例如 --optimize-for-size、--max_old_space_size 和 --gc_interval,就像 Heroku 建議的那樣。
其他一些選項用於啟用或禁用特定功能。我經常使用它們來嘗試在 beta 中實現的新提議的 JavaScript 功能,比如 --harmony-public-fields。
註: 選項名稱允許使用連字符(
-)或下劃線(_)分隔單詞,或者兩者混合使用。在教程中您會發現兩者混合使用,可能會有點混淆。它們沒有區別。
我通過運行命令 node --v8-options 得到了以下列表,它是相對於 Node.js 11.9.0 進行的,這是我撰寫本文時的最新 Node.js 版本。
| 選項 | 描述 | 類型 | 默認值 | 
|---|---|---|---|
--experimental-extras | 
启用通过 v8_experimental_extra_library_files 編譯的代碼 | bool | false | 
--use-strict | 
強制使用嚴格模式 | bool | false | 
--es-staging | 
启用值得測試的和內部使用的 Harmony 功能 | bool | - | 
--harmony | 
啟用所有已完成的 Harmony 功能 | bool | false | 
--harmony-shipping | 
啟用所有已發佈的 Harmony 功能 | bool | true | 
--harmony-do-expressions | 
啟用“harmony do-expressions” | 進展中 | bool | 
--harmony-class-fields | 
啟用“類文字中的 harmony fields” | 進展中 | bool | 
--harmony-static-fields | 
啟用“類字面中的 harmony 靜態字段” | 進展中 | bool | 
--harmony-await-optimization | 
啟用“harmony await 佔用 1 個 tick” | 進展中 | bool | 
--harmony-locale | 
啟用“Intl.Locale” | 進展中 | bool | 
--harmony-intl-list-format | 
啟用“Intl.ListFormat” | 進展中 | bool | 
--harmony-intl-relative-time-format | 
啟用“Intl.RelativeTimeFormat” | 進展中 | bool | 
--harmony-public-fields | 
啟用“類文字中的 harmony 公共字段” | bool | false | 
--harmony-private-fields | 
啟用“類文字中的 harmony 私有字段” | bool | false | 
--harmony-numeric-separator | 
啟用“數字間的 harmony 數字分隔符” | bool | false | 
--harmony-string-matchall | 
啟用“harmony String.prototype.matchAll” | bool | false | 
--harmony-global | 
啟用“harmony global” | bool | false | 
--harmony-string-trimming | 
啟用“harmony String.prototype.trim{Start,End}” | bool | true | 
--harmony-sharedarraybuffer | 
啟用“harmony sharedarraybuffer” | bool | true | 
--harmony-function-tostring | 
啟用“harmony Function.prototype.toString” | bool | true | 
--harmony-import-meta | 
啟用“harmony import.meta 屬性” | bool | true | 
--harmony-bigint | 
啟用“harmony 任意精度整數” | bool | true | 
--harmony-dynamic-import | 
啟用“harmony 動態 import” | bool | true | 
--harmony-array-prototype-values | 
啟用“harmony Array.prototype.values” | bool | true | 
--harmony-array-flat | 
啟用“harmony Array.prototype.{flat,flatMap}” | bool | true | 
--harmony-symbol-description | 
啟用“harmony Symbol.prototype.description” | bool | true | 
--icu-timezone-data | 
使用 ICU 獲取有關時區的信息 | bool | true | 
--future | 
暗示我們希望在不遠的將來發佈的所有階段功能 | bool | false | 
--allocation-site-pretenuring | 
在分配位置上預分配 | bool | true | 
--page-promotion | 
基於利用率提升頁面 | bool | true | 
--page-promotion-threshold | 
启用快速清理的页面上存活字節的最小百分比 | int | 70 | 
--trace-pretenuring | 
跟蹤 HAllocate 指令的预分配决策 | bool | false | 
--trace-pretenuring-statistics | 
跟蹤预分配位置的統計信息 | bool | false | 
--track-fields | 
跟蹤只包含 smi 值的字段 | bool | true | 
--track-double-fields | 
跟蹤包含 double 值的字段 | bool | true | 
--track-heap-object-fields | 
跟蹤包含堆值的字段 | bool | true | 
--track-computed-fields | 
跟蹤計算 boilerplate 字段 | bool | true | 
--track-field-types | 
跟蹤字段類型 | bool | true | 
--trace-block-coverage | 
跟蹤收集的塊覆蓋信息 | bool | false | 
--feedback-normalization | 
將規格化反饋提供給構造函數 | bool | false | 
--optimize-for-size | 
启用更偏向內存大小而不是執行速度的優化 | bool | false | 
--enable-one-shot-optimization | 
为只執行一次的代碼啟用尺寸優化 | bool | true | 
--unbox-double-arrays | 
自動拆箱雙精度數組 | bool | true | 
--interrupt-budget | 
應該用於剖析器計數器的中斷預算 | int | 147456 | 
--ignition-elide-noneffectful-bytecodes | 
忽略沒有外部效果的 bytecodes | bool | true | 
--ignition-reo | 
使用 ignition register equivalence optimizer | bool | true | 
--ignition-filter-expression-positions | 
在 bytecode pipeline 之前過濾表達式位置 | bool | true | 
--ignition-share-named-property-feedback | 
從同一對象中加載相同命名屬性時共享反饋槽 | bool | true | 
--print-bytecode | 
打印 ignition 解释器生成的 bytecode | bool | false | 
--print-bytecode-filter | 
過濾選擇要打印的函数 | string | * | 
--trace-ignition-codegen | 
跟蹤 ignition 解释器 bytecode 處理程序的 codegen | bool | false | 
--trace-ignition-dispatches | 
跟蹤 ignition 解释器分派到 bytecode 處理程序的過程 | bool | false | 
--trace-ignition-dispatches-output-file | 
写入 bytecode 處理程序分派表的文件名 | 默認情况下,不會將表寫入文件 | string | 
--fast-math | 
更快 | 但可能不準確的數學函數 | bool | 
--trace-track-allocation-sites | 
跟踪分配位置的跟踪 | bool | false | 
--trace-migration | 
跟踪對象遷移 | bool | false | 
--trace-generalization | 
跟踪映射泛化 | bool | false | 
--concurrent-recompilation | 
在單獨的線程上將熱門函數異步優化 | bool | true | 
--trace-concurrent-recompilation | 
跟踪並發重新編譯 | bool | false | 
--concurrent-recompilation-queue-length | 
并發編譯隊列的長度 | int | 8 | 
--concurrent-recompilation-delay | 
模擬編譯延遲,以毫秒為單位 | int | 0 | 
--block-concurrent-recompilation | 
阻止排隊的任務,直到被釋放 | bool | false | 
--concurrent-compiler-frontend | 
在單獨的線程上運行優化編譯器的前端階段 | bool | false | 
--strict-heap-broker | 
在序列化不完整時失敗 | bool | false | 
--trace-heap-broker | 
跟踪堆經紀 | bool | false | 
--stress-runs | 
壓力運行次數 | int | 0 | 
--deopt-every-n-times | 
從 deoptimization 點經過 N 次後進行 deoptimization | int | 0 | 
--print-deopt-stress | 
打印可能的 deoptimization 點的數量 | bool | false | 
--turbo-sp-frame-access | 
在可能的情況下使用相對於框架的堆疊指針訪問 | bool | false | 
--turbo-preprocess-ranges | 
在註冊分配後在運行執行階段運行預註冊分配 | bool | true | 
--turbo-filter | 
TurboFan 處理程序的優化過濾器 | string | * | 
--trace-turbo | 
跟踪生成的 TurboFan IR | bool | false | 
--trace-turbo-path | 
目錄,將生成的 TurboFan IR 寫入其中 | string | nullptr | 
--trace-turbo-filter | 
用於跟踪 turbofan 編譯的過濾器 | string | * | 
--trace-turbo-graph | 
跟踪生成的 TurboFan 圖形 | bool | false | 
--trace-turbo-scheduled | 
跟踪帶有時間表的 TurboFan IR | bool | false | 
--trace-turbo-cfg-file | 
trace turbo cfg graph | for C1 visualizer to a given file name | string | 
--trace-turbo-types | 
跟踪 TurboFan 的類型 | bool | true | 
--trace-turbo-scheduler | 
跟踪 TurboFan 的調度器 | bool | false | 
--trace-turbo-reduction | 
跟踪 TurboFan 的各種減少器 | bool | false | 
--trace-turbo-trimming | 
跟踪 TurboFan 的圖修剪 | bool | false | 
--trace-turbo-jt | 
跟踪 TurboFan 的跳線 | bool | false | 
--trace-turbo-ceq | 
跟踪 TurboFan 的控制等效性 | bool | false | 
--trace-turbo-loop | 
跟踪 TurboFan 的循環優化 | bool | false | 
--trace-alloc | 
跟踪寄存器分配器 | bool | false | 
--trace-all-uses | 
跟踪所有使用位置 | bool | false | 
--trace-representation | 
跟踪表示類型 | bool | false | 
--turbo-verify | 
在每個階段驗證 TurboFan 圖形 | bool | false | 
--turbo-verify-machine-graph | 
在指令選擇之前驗證 TurboFan 機器圖形 | string | nullptr | 
--trace-verify-csa | 
跟踪代碼存根驗證 | bool | false | 
--csa-trap-on-node | 
創建與給定存根中的給定節點 ID 相關的 node 時觸發斷點。格式為: StubName,NodeId | string | nullptr | 
--turbo-stats | 
打印 TurboFan 統計信息 | bool | false | 
--turbo-stats-nvp | 
將 TurboFan 統計信息以機器可讀的格式打印 | bool | false | 
--turbo-stats-wasm | 
打印 WebAssembly 編譯的 TurboFan 統計信息 | bool | false | 
--turbo-splitting | 
在 TurboFan 中計劃時拆分節點 | bool | true | 
--function-context-specialization | 
在 TurboFan 中啟用函數上下文專用性 | bool | false | 
--turbo-inlining | 
在 TurboFan 中啟用內聯 | bool | true | 
--max-inlined-bytecode-size | 
單個內聯中的 bytecode 的最大大小 | int | 500 | 
--max-inlined-bytecode-size-cumulative | 
考慮用於內聯的累積 bytecode 的最大大小 | int | 1000 | 
--max-inlined-bytecode-size-absolute | 
考慮用於內聯的累積 bytecode 的最大大小 | int | 5000 | 
--reserve-inline-budget-scale-factor | 
考慮用於內聯的累積 bytecode 的最大大小 | float | 1.2 | 
--max-inlined-bytecode-size-small | 
考慮用於小型函數內聯的 bytecode 的最大大小 | int | 30 | 
--min-inlining-frequency | 
內聯所需的最小頻率 | float | 0.15 | 
--polymorphic-inlining | 
多態內聯 | bool | true | 
--stress-inline | 
將內聯的閾值設定為非常高,以盡可能多地進行內聯 | bool | false | 
--trace-turbo-inlining | 
跟踪 TurboFan 的內聯 | bool | false | 
--inline-accessors | 
內聯 JavaScript 訪問器 | bool | true | 
--inline-into-try | 
內聯嵌入到 try 塊中 | bool | true | 
--turbo-inline-array-builtins | 
在 TurboFan 代碼中內聯數組內建函數 | bool | true | 
--use-osr | 
使用在堆上替換 | bool | true | 
--trace-osr | 
跟踪堆上替換 | bool | false | 
--analyze-environment-liveness | 
分析環境槽的活性並擦除死值 | bool | true | 
--trace-environment-liveness | 
跟踪本地變量槽的活性 | bool | false | 
--turbo-load-elimination | 
在 TurboFan 中啟用負載消除 | bool | true | 
--trace-turbo-load-elimination | 
跟踪 TurboFan 中的負載消除 | bool | false | 
--turbo-profiling | 
在 TurboFan 中啟用分析 | bool | false | 
--turbo-verify-allocation | 
驗證 TurboFan 中的寄存器分配 | bool | false | 
--turbo-move-optimization | 
優化 TurboFan 中的間隙移動 | bool | true | 
--turbo-jt | 
在 TurboFan 中啟用跳線線程 | bool | true | 
--turbo-loop-peeling | 
Turbofan 循環剝離 | bool | true | 
--turbo-loop-variable | 
TurboFan 循環變量優化 | bool | true | 
--turbo-cf-optimization | 
在 TurboFan 中優化控制流 | bool | true | 
--turbo-escape | 
啟用逃逸分析 | bool | true | 
--turbo-allocation-folding | 
TurboFan 分配摺疊 | bool | true | 
--turbo-instruction-scheduling | 
在 TurboFan 中启用指令调度 | bool | false | 
--turbo-stress-instruction-scheduling | 
隨機調度指令以強調依賴性跟蹤 | bool | false | 
--turbo-store-elimination | 
在 TurboFan 中启用存儲消除 | bool | true | 
--trace-store-elimination | 
跟踪儲存消除 | bool | false | 
--turbo-rewrite-far-jumps | 
重寫遠跳躍到近跳躍 | ia32、x64 | bool | 
--experimental-inline-promise-constructor | 
使用 TurboFan 內聯 Promise 構造函數 | bool | true | 
--untrusted-code-mitigations | 
启用為運行受信任的代碼而採取的緩解措施 | bool | false | 
--branch-load-poisoning | 
使用分支條件掩码加載 | bool | false | 
--minimal | 
简化執行模型以便更容易移植 | 使用 Ignition,但不優化 | bool | 
--expose-wasm | 
向 JavaScript 公開 wasm 接口 | bool | true | 
--assume-asmjs-origin | 
強制 wasm 解碼器假設輸入是內部 asm-wasm 格式 | bool | false | 
--wasm-disable-structured-cloning | 
禁用 wasm 結構化克隆 | bool | false | 
--wasm-num-compilation-tasks | 
wasm 平行編譯任務數量 | int | 10 | 
--wasm-write-protect-code-memory | 
在 wasm 原生堆上寫入保護代碼記憶 | bool | false | 
--wasm-trace-serialization | 
跟踪序列化/反序列化 | bool | false | 
--wasm-async-compilation | 
啟用實際的異步編譯 | WebAssembly.compile | bool | 
--wasm-test-streaming | 
對測試使用流式編譯而不是異步編譯 | bool | false | 
--wasm-max-mem-pages | 
wasm 實例的最大 64KiB 內存頁數 | uint | 32767 | 
--wasm-max-table-size | 
wasm 實例的最大表大小 | uint | 10000000 | 
--wasm-tier-up | 
启用 wasm 基線編譯器並逐步轉向優化編譯器 | bool | true | 
--trace-wasm-ast-start | 
跟踪 wasm AST 的開始函數 | 包含 | int | 
--trace-wasm-ast-end | 
跟踪 wasm AST 的結束函數 | 排除 | int | 
--liftoff | 
启用 Liftoff,WebAssembly 的基線編譯器 | bool | true | 
--wasm-trace-memory | 
打印 wasm 代碼中執行的所有內存更新 | bool | false | 
--wasm-tier-mask-for-testing | 
用 TurboFan 編譯而不是 Liftoff 編譯編譯的函數二進制掩碼 | int | 0 | 
--validate-asm | 
在編譯之前驗證 asm.js 模塊 | bool | true | 
--suppress-asm-messages | 
不發出 asm.js 相關消息 | 用於黃金文件測試 | bool | 
--trace-asm-time | 
將 asm.js 時間信息日誌輸出到控制台 | bool | false | 
--trace-asm-scanner | 
日誌 asm.js 掃描器遇到的標記 | bool | false | 
--trace-asm-parser | 
詳細記錄 asm.js 解析失敗 | bool | false | 
--stress-validate-asm | 
嘗試對所有內容進行驗證為 asm.js | bool | false | 
--dump-wasm-module-path | 
將 wasm 模塊轉存到指定的目錄 | string | nullptr | 
--experimental-wasm-mv | 
启用用於 wasm 的原型多值支持 | bool | false | 
--experimental-wasm-eh | 
启用用於 wasm 的原型異常處理操作碼 | bool | false | 
--experimental-wasm-se | 
启用用於 wasm 的原型符號擴展操作碼 | bool | true | 
--experimental-wasm-sat-f2i-conversions | 
启用用於 wasm 的原型飽和化浮點轉換操作碼 | bool | false | 
--experimental-wasm-threads | 
启用用於 wasm 的原型線程操作碼 | bool | false | 
--experimental-wasm-simd | 
启用用於 wasm 的原型 SIMD 操作碼 | bool | false | 
--experimental-wasm-anyref | 
启用用於 wasm 的原型任意引用操作碼 | bool | false | 
--experimental-wasm-mut-global | 
启用用於 wasm 的原型導入/導出可變全局變量支持 | bool | true | 
--wasm-opt | 
启用 wasm 優化 | bool | false | 
--wasm-no-bounds-checks | 
禁用邊界檢查 | 只能用於性能測試 | bool | 
--wasm-no-stack-checks | 
禁用堆棧檢查 | 只能用於性能測試 | bool | 
--wasm-shared-engine | 
在進程內的所有 |