Test std/:

    1. cargo test std_tests

    Lint and format

    Lint the code:

    1. deno run -A --unstable ./tools/lint.js

    Format the code:

    To start profiling:

    1. # Make sure we're only building release.
    2. # Build deno and V8's d8.
    3. ninja -C target/release d8
    4. # Start the program we want to benchmark with --prof
    5. ./target/release/deno run tests/http_bench.ts --allow-net --v8-flags=--prof &
    6. # Exercise it.
    7. third_party/wrk/linux/wrk http://localhost:4500/
    8. kill `pgrep deno`
    1. D8_PATH=target/release/ ./third_party/v8/tools/linux-tick-processor
    2. isolate-0x7fad98242400-v8.log > prof.log
    3. # on macOS, use ./third_party/v8/tools/mac-tick-processor instead

    prof.log will contain information about tick distribution of different calls.

    To view the log with Web UI, generate JSON file of the log:

    Open third_party/v8/tools/profview/index.html in your browser, and select prof.json to view the distribution graphically.

    Useful V8 flags during profiling:

    • —prof
    • —log-internal-timer-events
    • —log-timer-events
    • —track-gc
    • —log-source-code
    • —track-gc-object-stats

    Debugging with LLDB

    To debug the deno binary, we can use rust-lldb. It should come with rustc and is a wrapper around LLDB.

    1. $ rust-lldb -- ./target/debug/deno run --allow-net tests/http_bench.ts
    2. # On macOS, you might get warnings like
    3. # `ImportError: cannot import name _remove_dead_weakref`
    4. # In that case, use system python by setting PATH, e.g.
    5. # PATH=/System/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
    6. (lldb) command script import "/Users/kevinqian/.rustup/toolchains/1.36.0-x86_64-apple-darwin/lib/rustlib/etc/lldb_rust_formatters.py"
    7. (lldb) type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
    8. (lldb) type category enable Rust
    9. (lldb) target create "../deno/target/debug/deno"
    10. Current executable set to '../deno/target/debug/deno' (x86_64).
    11. (lldb) settings set -- target.run-args "tests/http_bench.ts" "--allow-net"
    12. (lldb) b op_start
    13. (lldb) r

    V8 has many many internal command-line flags:

    1. $ deno run --v8-flags=--help _
    2. SSE3=1 SSSE3=1 SSE4_1=1 SSE4_2=1 SAHF=1 AVX=1 FMA3=1 BMI1=1 BMI2=1 LZCNT=1 POPCNT=1 ATOM=0
    3. Synopsis:
    4. shell [options] [--shell] [<file>...]
    5. d8 [options] [-e <string>] [--shell] [[--module] <file>...]
    6. -e execute a string in V8
    7. --shell run an interactive JavaScript shell
    8. --module execute a file as a JavaScript module
    9. Note: the --module option is implicitly enabled for *.mjs files.
    10. The following syntax for options is accepted (both '-' and '--' are ok):
    11. --flag (bool flags only)
    12. --no-flag (bool flags only)
    13. --flag=value (non-bool flags only, no spaces around '=')
    14. --flag value (non-bool flags only)
    15. -- (captures all remaining args in JavaScript)
    16. Options:
    17. --use-strict (enforce strict mode)
    18. type: bool default: false
    19. --es-staging (enable test-worthy harmony features (for internal use only))
    20. type: bool default: false
    21. --harmony (enable all completed harmony features)
    22. type: bool default: false
    23. --harmony-shipping (enable all shipped harmony features)
    24. type: bool default: true
    25. --harmony-regexp-sequence (enable "RegExp Unicode sequence properties" (in progress))
    26. type: bool default: false
    27. --harmony-weak-refs-with-cleanup-some (enable "harmony weak references with FinalizationRegistry.prototype.cleanupSome" (in progress))
    28. type: bool default: false
    29. --harmony-regexp-match-indices (enable "harmony regexp match indices" (in progress))
    30. type: bool default: false
    31. --harmony-top-level-await (enable "harmony top level await")
    32. type: bool default: false
    33. --harmony-namespace-exports (enable "harmony namespace exports (export * as foo from 'bar')")
    34. type: bool default: true
    35. --harmony-sharedarraybuffer (enable "harmony sharedarraybuffer")
    36. type: bool default: true
    37. --harmony-import-meta (enable "harmony import.meta property")
    38. type: bool default: true
    39. --harmony-dynamic-import (enable "harmony dynamic import")
    40. type: bool default: true
    41. --harmony-promise-all-settled (enable "harmony Promise.allSettled")
    42. type: bool default: true
    43. --harmony-promise-any (enable "harmony Promise.any")
    44. type: bool default: true
    45. --harmony-private-methods (enable "harmony private methods in class literals")
    46. type: bool default: true
    47. --harmony-weak-refs (enable "harmony weak references")
    48. type: bool default: true
    49. --harmony-string-replaceall (enable "harmony String.prototype.replaceAll")
    50. type: bool default: true
    51. --harmony-logical-assignment (enable "harmony logical assignment")
    52. type: bool default: true
    53. --lite-mode (enables trade-off of performance for memory savings)
    54. type: bool default: false
    55. --future (Implies all staged features that we want to ship in the not-too-far future)
    56. type: bool default: false
    57. --assert-types (generate runtime type assertions to test the typer)
    58. type: bool default: false
    59. --allocation-site-pretenuring (pretenure with allocation sites)
    60. type: bool default: true
    61. --page-promotion (promote pages based on utilization)
    62. type: bool default: true
    63. --always-promote-young-mc (always promote young objects during mark-compact)
    64. type: bool default: true
    65. --page-promotion-threshold (min percentage of live bytes on a page to enable fast evacuation)
    66. type: int default: 70
    67. --trace-pretenuring (trace pretenuring decisions of HAllocate instructions)
    68. type: bool default: false
    69. --trace-pretenuring-statistics (trace allocation site pretenuring statistics)
    70. type: bool default: false
    71. --track-fields (track fields with only smi values)
    72. type: bool default: true
    73. --track-double-fields (track fields with double values)
    74. type: bool default: true
    75. --track-heap-object-fields (track fields with heap values)
    76. type: bool default: true
    77. --track-computed-fields (track computed boilerplate fields)
    78. type: bool default: true
    79. --track-field-types (track field types)
    80. type: bool default: true
    81. --trace-block-coverage (trace collected block coverage information)
    82. type: bool default: false
    83. --trace-protector-invalidation (trace protector cell invalidations)
    84. type: bool default: false
    85. --feedback-normalization (feed back normalization to constructors)
    86. type: bool default: false
    87. --enable-one-shot-optimization (Enable size optimizations for the code that will only be executed once)
    88. type: bool default: false
    89. --unbox-double-arrays (automatically unbox arrays of doubles)
    90. type: bool default: true
    91. --interrupt-budget (interrupt budget which should be used for the profiler counter)
    92. type: int default: 147456
    93. --jitless (Disable runtime allocation of executable memory.)
    94. type: bool default: false
    95. --use-ic (use inline caching)
    96. type: bool default: true
    97. --budget-for-feedback-vector-allocation (The budget in amount of bytecode executed by a function before we decide to allocate feedback vectors)
    98. type: int default: 1024
    99. --lazy-feedback-allocation (Allocate feedback vectors lazily)
    100. type: bool default: true
    101. --ignition-elide-noneffectful-bytecodes (elide bytecodes which won't have any external effect)
    102. type: bool default: true
    103. --ignition-reo (use ignition register equivalence optimizer)
    104. type: bool default: true
    105. --ignition-filter-expression-positions (filter expression positions before the bytecode pipeline)
    106. type: bool default: true
    107. --ignition-share-named-property-feedback (share feedback slots when loading the same named property from the same object)
    108. type: bool default: true
    109. --print-bytecode (print bytecode generated by ignition interpreter)
    110. type: bool default: false
    111. --enable-lazy-source-positions (skip generating source positions during initial compile but regenerate when actually required)
    112. type: bool default: true
    113. --stress-lazy-source-positions (collect lazy source positions immediately after lazy compile)
    114. type: bool default: false
    115. --print-bytecode-filter (filter for selecting which functions to print bytecode)
    116. type: string default: *
    117. --trace-ignition-codegen (trace the codegen of ignition interpreter bytecode handlers)
    118. type: bool default: false
    119. --trace-ignition-dispatches (traces the dispatches to bytecode handlers by the ignition interpreter)
    120. type: bool default: false
    121. --trace-ignition-dispatches-output-file (the file to which the bytecode handler dispatch table is written (by default, the table is not written to a file))
    122. type: string default: nullptr
    123. --fast-math (faster (but maybe less accurate) math functions)
    124. type: bool default: true
    125. --trace-track-allocation-sites (trace the tracking of allocation sites)
    126. type: bool default: false
    127. --trace-migration (trace object migration)
    128. type: bool default: false
    129. --trace-generalization (trace map generalization)
    130. type: bool default: false
    131. --turboprop (enable experimental turboprop mid-tier compiler.)
    132. type: bool default: false
    133. --concurrent-recompilation (optimizing hot functions asynchronously on a separate thread)
    134. type: bool default: true
    135. --trace-concurrent-recompilation (track concurrent recompilation)
    136. type: bool default: false
    137. --concurrent-recompilation-queue-length (the length of the concurrent compilation queue)
    138. type: int default: 8
    139. --concurrent-recompilation-delay (artificial compilation delay in ms)
    140. type: int default: 0
    141. --block-concurrent-recompilation (block queued jobs until released)
    142. type: bool default: false
    143. --concurrent-inlining (run optimizing compiler's inlining phase on a separate thread)
    144. type: bool default: false
    145. --max-serializer-nesting (maximum levels for nesting child serializers)
    146. type: int default: 25
    147. --trace-heap-broker-verbose (trace the heap broker verbosely (all reports))
    148. type: bool default: false
    149. --trace-heap-broker-memory (trace the heap broker memory (refs analysis and zone numbers))
    150. type: bool default: false
    151. --trace-heap-broker (trace the heap broker (reports on missing data only))
    152. type: bool default: false
    153. --stress-runs (number of stress runs)
    154. type: int default: 0
    155. --deopt-every-n-times (deoptimize every n times a deopt point is passed)
    156. type: int default: 0
    157. --print-deopt-stress (print number of possible deopt points)
    158. type: bool default: false
    159. --opt (use adaptive optimizations)
    160. type: bool default: true
    161. --turbo-sp-frame-access (use stack pointer-relative access to frame wherever possible)
    162. type: bool default: false
    163. --turbo-control-flow-aware-allocation (consider control flow while allocating registers)
    164. type: bool default: true
    165. --turbo-filter (optimization filter for TurboFan compiler)
    166. type: string default: *
    167. --trace-turbo (trace generated TurboFan IR)
    168. type: bool default: false
    169. --trace-turbo-path (directory to dump generated TurboFan IR to)
    170. type: string default: nullptr
    171. --trace-turbo-filter (filter for tracing turbofan compilation)
    172. type: string default: *
    173. --trace-turbo-graph (trace generated TurboFan graphs)
    174. type: bool default: false
    175. --trace-turbo-scheduled (trace TurboFan IR with schedule)
    176. type: bool default: false
    177. --trace-turbo-cfg-file (trace turbo cfg graph (for C1 visualizer) to a given file name)
    178. type: string default: nullptr
    179. --trace-turbo-types (trace TurboFan's types)
    180. type: bool default: true
    181. --trace-turbo-scheduler (trace TurboFan's scheduler)
    182. type: bool default: false
    183. --trace-turbo-reduction (trace TurboFan's various reducers)
    184. type: bool default: false
    185. --trace-turbo-trimming (trace TurboFan's graph trimmer)
    186. type: bool default: false
    187. --trace-turbo-jt (trace TurboFan's jump threading)
    188. type: bool default: false
    189. --trace-turbo-ceq (trace TurboFan's control equivalence)
    190. type: bool default: false
    191. --trace-turbo-loop (trace TurboFan's loop optimizations)
    192. type: bool default: false
    193. --trace-turbo-alloc (trace TurboFan's register allocator)
    194. type: bool default: false
    195. --trace-all-uses (trace all use positions)
    196. type: bool default: false
    197. --trace-representation (trace representation types)
    198. type: bool default: false
    199. --turbo-verify (verify TurboFan graphs at each phase)
    200. type: bool default: false
    201. --turbo-verify-machine-graph (verify TurboFan machine graph before instruction selection)
    202. type: string default: nullptr
    203. --trace-verify-csa (trace code stubs verification)
    204. type: bool default: false
    205. --csa-trap-on-node (trigger break point when a node with given id is created in given stub. The format is: StubName,NodeId)
    206. type: string default: nullptr
    207. --turbo-stats (print TurboFan statistics)
    208. type: bool default: false
    209. --turbo-stats-nvp (print TurboFan statistics in machine-readable format)
    210. type: bool default: false
    211. --turbo-stats-wasm (print TurboFan statistics of wasm compilations)
    212. type: bool default: false
    213. --turbo-splitting (split nodes during scheduling in TurboFan)
    214. type: bool default: true
    215. --function-context-specialization (enable function context specialization in TurboFan)
    216. type: bool default: false
    217. --turbo-inlining (enable inlining in TurboFan)
    218. type: bool default: true
    219. --max-inlined-bytecode-size (maximum size of bytecode for a single inlining)
    220. type: int default: 500
    221. --max-inlined-bytecode-size-cumulative (maximum cumulative size of bytecode considered for inlining)
    222. type: int default: 1000
    223. --max-inlined-bytecode-size-absolute (maximum cumulative size of bytecode considered for inlining)
    224. type: int default: 5000
    225. --reserve-inline-budget-scale-factor (maximum cumulative size of bytecode considered for inlining)
    226. type: float default: 1.2
    227. --max-inlined-bytecode-size-small (maximum size of bytecode considered for small function inlining)
    228. type: int default: 30
    229. --max-optimized-bytecode-size (maximum bytecode size to be considered for optimization; too high values may cause the compiler to hit (release) assertions)
    230. type: int default: 61440
    231. --min-inlining-frequency (minimum frequency for inlining)
    232. type: float default: 0.15
    233. --polymorphic-inlining (polymorphic inlining)
    234. type: bool default: true
    235. --stress-inline (set high thresholds for inlining to inline as much as possible)
    236. type: bool default: false
    237. --trace-turbo-inlining (trace TurboFan inlining)
    238. type: bool default: false
    239. --turbo-inline-array-builtins (inline array builtins in TurboFan code)
    240. type: bool default: true
    241. --use-osr (use on-stack replacement)
    242. type: bool default: true
    243. --trace-osr (trace on-stack replacement)
    244. type: bool default: false
    245. --analyze-environment-liveness (analyze liveness of environment slots and zap dead values)
    246. type: bool default: true
    247. --trace-environment-liveness (trace liveness of local variable slots)
    248. type: bool default: false
    249. --turbo-load-elimination (enable load elimination in TurboFan)
    250. type: bool default: true
    251. --trace-turbo-load-elimination (trace TurboFan load elimination)
    252. type: bool default: false
    253. --turbo-profiling (enable basic block profiling in TurboFan)
    254. type: bool default: false
    255. --turbo-profiling-verbose (enable basic block profiling in TurboFan, and include each function's schedule and disassembly in the output)
    256. type: bool default: false
    257. --turbo-verify-allocation (verify register allocation in TurboFan)
    258. type: bool default: false
    259. --turbo-move-optimization (optimize gap moves in TurboFan)
    260. type: bool default: true
    261. --turbo-jt (enable jump threading in TurboFan)
    262. type: bool default: true
    263. --turbo-loop-peeling (Turbofan loop peeling)
    264. type: bool default: true
    265. --turbo-loop-variable (Turbofan loop variable optimization)
    266. type: bool default: true
    267. --turbo-loop-rotation (Turbofan loop rotation)
    268. type: bool default: true
    269. --turbo-cf-optimization (optimize control flow in TurboFan)
    270. type: bool default: true
    271. --turbo-escape (enable escape analysis)
    272. type: bool default: true
    273. --turbo-allocation-folding (Turbofan allocation folding)
    274. type: bool default: true
    275. --turbo-instruction-scheduling (enable instruction scheduling in TurboFan)
    276. type: bool default: false
    277. --turbo-stress-instruction-scheduling (randomly schedule instructions to stress dependency tracking)
    278. type: bool default: false
    279. --turbo-store-elimination (enable store-store elimination in TurboFan)
    280. type: bool default: true
    281. --trace-store-elimination (trace store elimination)
    282. type: bool default: false
    283. --turbo-rewrite-far-jumps (rewrite far to near jumps (ia32,x64))
    284. type: bool default: true
    285. --stress-gc-during-compilation (simulate GC/compiler thread race related to https://crbug.com/v8/8520)
    286. type: bool default: false
    287. --turbo-fast-api-calls (enable fast API calls from TurboFan)
    288. type: bool default: false
    289. --reuse-opt-code-count (don't discard optimized code for the specified number of deopts.)
    290. type: int default: 0
    291. --turbo-nci (enable experimental native context independent code.)
    292. type: bool default: false
    293. --turbo-nci-as-highest-tier (replace default TF with NCI code as the highest tier for testing purposes.)
    294. type: bool default: false
    295. --print-nci-code (print native context independent code.)
    296. type: bool default: false
    297. --trace-turbo-nci (trace native context independent code.)
    298. type: bool default: false
    299. --turbo-collect-feedback-in-generic-lowering (enable experimental feedback collection in generic lowering.)
    300. type: bool default: false
    301. --optimize-for-size (Enables optimizations which favor memory size over execution speed)
    302. --untrusted-code-mitigations (Enable mitigations for executing untrusted code)
    303. type: bool default: false
    304. --expose-wasm (expose wasm interface to JavaScript)
    305. --assume-asmjs-origin (force wasm decoder to assume input is internal asm-wasm format)
    306. type: bool default: false
    307. --wasm-num-compilation-tasks (maximum number of parallel compilation tasks for wasm)
    308. type: int default: 128
    309. --wasm-write-protect-code-memory (write protect code memory on the wasm native heap)
    310. type: bool default: false
    311. --wasm-async-compilation (enable actual asynchronous compilation for WebAssembly.compile)
    312. type: bool default: true
    313. --wasm-test-streaming (use streaming compilation instead of async compilation for tests)
    314. type: bool default: false
    315. --wasm-max-mem-pages (maximum initial number of 64KiB memory pages of a wasm instance)
    316. type: uint default: 32767
    317. --wasm-max-mem-pages-growth (maximum number of 64KiB pages a Wasm memory can grow to)
    318. type: uint default: 65536
    319. --wasm-max-table-size (maximum table size of a wasm instance)
    320. type: uint default: 10000000
    321. --wasm-max-code-space (maximum committed code space for wasm (in MB))
    322. type: uint default: 1024
    323. --wasm-tier-up (enable tier up to the optimizing compiler (requires --liftoff to have an effect))
    324. type: bool default: true
    325. --trace-wasm-ast-start (start function for wasm AST trace (inclusive))
    326. type: int default: 0
    327. --trace-wasm-ast-end (end function for wasm AST trace (exclusive))
    328. type: int default: 0
    329. --liftoff (enable Liftoff, the baseline compiler for WebAssembly)
    330. type: bool default: true
    331. --trace-wasm-memory (print all memory updates performed in wasm code)
    332. type: bool default: false
    333. --wasm-tier-mask-for-testing (bitmask of functions to compile with TurboFan instead of Liftoff)
    334. type: int default: 0
    335. --wasm-expose-debug-eval (Expose wasm evaluator support on the CDP)
    336. type: bool default: false
    337. --validate-asm (validate asm.js modules before compiling)
    338. type: bool default: true
    339. --suppress-asm-messages (don't emit asm.js related messages (for golden file testing))
    340. type: bool default: false
    341. --trace-asm-time (log asm.js timing info to the console)
    342. type: bool default: false
    343. --trace-asm-scanner (log tokens encountered by asm.js scanner)
    344. type: bool default: false
    345. --trace-asm-parser (verbose logging of asm.js parse failures)
    346. type: bool default: false
    347. --stress-validate-asm (try to validate everything as asm.js)
    348. type: bool default: false
    349. --dump-wasm-module-path (directory to dump wasm modules to)
    350. type: string default: nullptr
    351. --experimental-wasm-eh (enable prototype exception handling opcodes for wasm)
    352. type: bool default: false
    353. --experimental-wasm-simd (enable prototype SIMD opcodes for wasm)
    354. type: bool default: false
    355. --experimental-wasm-return-call (enable prototype return call opcodes for wasm)
    356. type: bool default: false
    357. --experimental-wasm-compilation-hints (enable prototype compilation hints section for wasm)
    358. type: bool default: false
    359. --experimental-wasm-gc (enable prototype garbage collection for wasm)
    360. type: bool default: false
    361. --experimental-wasm-typed-funcref (enable prototype typed function references for wasm)
    362. type: bool default: false
    363. --experimental-wasm-reftypes (enable prototype reference type opcodes for wasm)
    364. type: bool default: false
    365. --experimental-wasm-threads (enable prototype thread opcodes for wasm)
    366. type: bool default: false
    367. --experimental-wasm-type-reflection (enable prototype wasm type reflection in JS for wasm)
    368. type: bool default: false
    369. --experimental-wasm-bigint (enable prototype JS BigInt support for wasm)
    370. type: bool default: true
    371. --experimental-wasm-bulk-memory (enable prototype bulk memory opcodes for wasm)
    372. type: bool default: true
    373. --experimental-wasm-mv (enable prototype multi-value support for wasm)
    374. type: bool default: true
    375. --wasm-staging (enable staged wasm features)
    376. type: bool default: false
    377. --wasm-opt (enable wasm optimization)
    378. type: bool default: false
    379. --wasm-bounds-checks (enable bounds checks (disable for performance testing only))
    380. type: bool default: true
    381. --wasm-stack-checks (enable stack checks (disable for performance testing only))
    382. type: bool default: true
    383. --wasm-math-intrinsics (intrinsify some Math imports into wasm)
    384. type: bool default: true
    385. --wasm-trap-handler (use signal handlers to catch out of bounds memory access in wasm (currently Linux x86_64 only))
    386. type: bool default: true
    387. --wasm-fuzzer-gen-test (generate a test case when running a wasm fuzzer)
    388. type: bool default: false
    389. --print-wasm-code (Print WebAssembly code)
    390. type: bool default: false
    391. --print-wasm-stub-code (Print WebAssembly stub code)
    392. type: bool default: false
    393. --asm-wasm-lazy-compilation (enable lazy compilation for asm-wasm modules)
    394. type: bool default: false
    395. --wasm-lazy-compilation (enable lazy compilation for all wasm modules)
    396. type: bool default: false
    397. --wasm-lazy-validation (enable lazy validation for lazily compiled wasm functions)
    398. type: bool default: false
    399. --wasm-atomics-on-non-shared-memory (allow atomic operations on non-shared WebAssembly memory)
    400. type: bool default: true
    401. --wasm-grow-shared-memory (allow growing shared WebAssembly memory objects)
    402. type: bool default: true
    403. --wasm-simd-post-mvp (allow experimental SIMD operations for prototyping that are not included in the current proposal)
    404. type: bool default: false
    405. --wasm-code-gc (enable garbage collection of wasm code)
    406. type: bool default: true
    407. --trace-wasm-code-gc (trace garbage collection of wasm code)
    408. type: bool default: false
    409. --stress-wasm-code-gc (stress test garbage collection of wasm code)
    410. type: bool default: false
    411. --wasm-max-initial-code-space-reservation (maximum size of the initial wasm code space reservation (in MB))
    412. type: int default: 0
    413. --frame-count (number of stack frames inspected by the profiler)
    414. type: int default: 1
    415. --stress-sampling-allocation-profiler (Enables sampling allocation profiler with X as a sample interval)
    416. type: int default: 0
    417. --lazy-new-space-shrinking (Enables the lazy new space shrinking strategy)
    418. type: bool default: false
    419. --min-semi-space-size (min size of a semi-space (in MBytes), the new space consists of two semi-spaces)
    420. type: size_t default: 0
    421. --max-semi-space-size (max size of a semi-space (in MBytes), the new space consists of two semi-spaces)
    422. type: size_t default: 0
    423. --semi-space-growth-factor (factor by which to grow the new space)
    424. type: int default: 2
    425. --max-old-space-size (max size of the old space (in Mbytes))
    426. type: size_t default: 0
    427. --max-heap-size (max size of the heap (in Mbytes) both max_semi_space_size and max_old_space_size take precedence. All three flags cannot be specified at the same time.)
    428. type: size_t default: 0
    429. --initial-heap-size (initial size of the heap (in Mbytes))
    430. type: size_t default: 0
    431. --huge-max-old-generation-size (Increase max size of the old space to 4 GB for x64 systems withthe physical memory bigger than 16 GB)
    432. type: bool default: true
    433. --initial-old-space-size (initial old space size (in Mbytes))
    434. type: size_t default: 0
    435. --global-gc-scheduling (enable GC scheduling based on global memory)
    436. type: bool default: true
    437. --gc-global (always perform global GCs)
    438. type: bool default: false
    439. --random-gc-interval (Collect garbage after random(0, X) allocations. It overrides gc_interval.)
    440. type: int default: 0
    441. --gc-interval (garbage collect after <n> allocations)
    442. type: int default: -1
    443. --retain-maps-for-n-gc (keeps maps alive for <n> old space garbage collections)
    444. type: int default: 2
    445. --trace-gc (print one trace line following each garbage collection)
    446. type: bool default: false
    447. --trace-gc-nvp (print one detailed trace line in name=value format after each garbage collection)
    448. type: bool default: false
    449. --trace-gc-ignore-scavenger (do not print trace line after scavenger collection)
    450. type: bool default: false
    451. --trace-idle-notification (print one trace line following each idle notification)
    452. type: bool default: false
    453. --trace-idle-notification-verbose (prints the heap state used by the idle notification)
    454. type: bool default: false
    455. --trace-gc-verbose (print more details following each garbage collection)
    456. type: bool default: false
    457. --trace-gc-freelists (prints details of each freelist before and after each major garbage collection)
    458. type: bool default: false
    459. --trace-gc-freelists-verbose (prints details of freelists of each page before and after each major garbage collection)
    460. type: bool default: false
    461. --trace-evacuation-candidates (Show statistics about the pages evacuation by the compaction)
    462. type: bool default: false
    463. --trace-allocations-origins (Show statistics about the origins of allocations. Combine with --no-inline-new to track allocations from generated code)
    464. type: bool default: false
    465. --trace-allocation-stack-interval (print stack trace after <n> free-list allocations)
    466. type: int default: -1
    467. --trace-duplicate-threshold-kb (print duplicate objects in the heap if their size is more than given threshold)
    468. type: int default: 0
    469. --trace-fragmentation (report fragmentation for old space)
    470. type: bool default: false
    471. --trace-fragmentation-verbose (report fragmentation for old space (detailed))
    472. type: bool default: false
    473. --minor-mc-trace-fragmentation (trace fragmentation after marking)
    474. type: bool default: false
    475. --trace-evacuation (report evacuation statistics)
    476. type: bool default: false
    477. --trace-mutator-utilization (print mutator utilization, allocation speed, gc speed)
    478. type: bool default: false
    479. --incremental-marking (use incremental marking)
    480. type: bool default: true
    481. --incremental-marking-wrappers (use incremental marking for marking wrappers)
    482. type: bool default: true
    483. --incremental-marking-task (use tasks for incremental marking)
    484. type: bool default: true
    485. --incremental-marking-soft-trigger (threshold for starting incremental marking via a task in percent of available space: limit - size)
    486. type: int default: 0
    487. --incremental-marking-hard-trigger (threshold for starting incremental marking immediately in percent of available space: limit - size)
    488. type: int default: 0
    489. --trace-unmapper (Trace the unmapping)
    490. type: bool default: false
    491. --parallel-scavenge (parallel scavenge)
    492. type: bool default: true
    493. --scavenge-task (schedule scavenge tasks)
    494. type: bool default: true
    495. --scavenge-task-trigger (scavenge task trigger in percent of the current heap limit)
    496. type: int default: 80
    497. --scavenge-separate-stack-scanning (use a separate phase for stack scanning in scavenge)
    498. type: bool default: false
    499. --trace-parallel-scavenge (trace parallel scavenge)
    500. type: bool default: false
    501. --write-protect-code-memory (write protect code memory)
    502. type: bool default: true
    503. --concurrent-marking (use concurrent marking)
    504. type: bool default: true
    505. --concurrent-array-buffer-sweeping (concurrently sweep array buffers)
    506. type: bool default: true
    507. --concurrent-allocation (concurrently allocate in old space)
    508. type: bool default: false
    509. --local-heaps (allow heap access from background tasks)
    510. type: bool default: false
    511. --stress-concurrent-allocation (start background threads that allocate memory)
    512. type: bool default: false
    513. --parallel-marking (use parallel marking in atomic pause)
    514. type: bool default: true
    515. --ephemeron-fixpoint-iterations (number of fixpoint iterations it takes to switch to linear ephemeron algorithm)
    516. type: int default: 10
    517. --trace-concurrent-marking (trace concurrent marking)
    518. type: bool default: false
    519. --concurrent-store-buffer (use concurrent store buffer processing)
    520. type: bool default: true
    521. --concurrent-sweeping (use concurrent sweeping)
    522. type: bool default: true
    523. --parallel-compaction (use parallel compaction)
    524. type: bool default: true
    525. --parallel-pointer-update (use parallel pointer update during compaction)
    526. type: bool default: true
    527. --detect-ineffective-gcs-near-heap-limit (trigger out-of-memory failure to avoid GC storm near heap limit)
    528. type: bool default: true
    529. --trace-incremental-marking (trace progress of the incremental marking)
    530. type: bool default: false
    531. --trace-stress-marking (trace stress marking progress)
    532. type: bool default: false
    533. --trace-stress-scavenge (trace stress scavenge progress)
    534. type: bool default: false
    535. --track-gc-object-stats (track object counts and memory usage)
    536. type: bool default: false
    537. --trace-gc-object-stats (trace object counts and memory usage)
    538. type: bool default: false
    539. --trace-zone-stats (trace zone memory usage)
    540. type: bool default: false
    541. --zone-stats-tolerance (report a tick only when allocated zone memory changes by this amount)
    542. type: size_t default: 1048576
    543. --track-retaining-path (enable support for tracking retaining path)
    544. type: bool default: false
    545. --concurrent-array-buffer-freeing (free array buffer allocations on a background thread)
    546. type: bool default: true
    547. --gc-stats (Used by tracing internally to enable gc statistics)
    548. type: int default: 0
    549. --track-detached-contexts (track native contexts that are expected to be garbage collected)
    550. type: bool default: true
    551. --trace-detached-contexts (trace native contexts that are expected to be garbage collected)
    552. type: bool default: false
    553. --move-object-start (enable moving of object starts)
    554. type: bool default: true
    555. --memory-reducer (use memory reducer)
    556. type: bool default: true
    557. --memory-reducer-for-small-heaps (use memory reducer for small heaps)
    558. type: bool default: true
    559. --heap-growing-percent (specifies heap growing factor as (1 + heap_growing_percent/100))
    560. type: int default: 0
    561. --v8-os-page-size (override OS page size (in KBytes))
    562. type: int default: 0
    563. --always-compact (Perform compaction on every full GC)
    564. type: bool default: false
    565. --never-compact (Never perform compaction on full GC - testing only)
    566. type: bool default: false
    567. --compact-code-space (Compact code space on full collections)
    568. type: bool default: true
    569. --flush-bytecode (flush of bytecode when it has not been executed recently)
    570. type: bool default: true
    571. --stress-flush-bytecode (stress bytecode flushing)
    572. type: bool default: false
    573. --use-marking-progress-bar (Use a progress bar to scan large objects in increments when incremental marking is active.)
    574. type: bool default: true
    575. --stress-per-context-marking-worklist (Use per-context worklist for marking)
    576. type: bool default: false
    577. --force-marking-deque-overflows (force overflows of marking deque by reducing it's size to 64 words)
    578. type: bool default: false
    579. --stress-compaction (stress the GC compactor to flush out bugs (implies --force_marking_deque_overflows))
    580. type: bool default: false
    581. --stress-compaction-random (Stress GC compaction by selecting random percent of pages as evacuation candidates. It overrides stress_compaction.)
    582. type: bool default: false
    583. --stress-incremental-marking (force incremental marking for small heaps and run it more often)
    584. type: bool default: false
    585. --fuzzer-gc-analysis (prints number of allocations and enables analysis mode for gc fuzz testing, e.g. --stress-marking, --stress-scavenge)
    586. type: bool default: false
    587. --stress-marking (force marking at random points between 0 and X (inclusive) percent of the regular marking start limit)
    588. type: int default: 0
    589. --stress-scavenge (force scavenge at random points between 0 and X (inclusive) percent of the new space capacity)
    590. type: int default: 0
    591. --gc-experiment-background-schedule (new background GC schedule heuristics)
    592. type: bool default: false
    593. --gc-experiment-less-compaction (less compaction in non-memory reducing mode)
    594. type: bool default: false
    595. --disable-abortjs (disables AbortJS runtime function)
    596. type: bool default: false
    597. --randomize-all-allocations (randomize virtual memory reservations by ignoring any hints passed when allocating pages)
    598. type: bool default: false
    599. --manual-evacuation-candidates-selection (Test mode only flag. It allows an unit test to select evacuation candidates pages (requires --stress_compaction).)
    600. type: bool default: false
    601. --fast-promotion-new-space (fast promote new space on high survival rates)
    602. type: bool default: false
    603. --clear-free-memory (initialize free memory with 0)
    604. type: bool default: false
    605. --young-generation-large-objects (allocates large objects by default in the young generation large object space)
    606. type: bool default: true
    607. --debug-code (generate extra code (assertions) for debugging)
    608. type: bool default: false
    609. --code-comments (emit comments in code disassembly; for more readable source positions you should add --no-concurrent_recompilation)
    610. type: bool default: false
    611. --enable-sse3 (enable use of SSE3 instructions if available)
    612. type: bool default: true
    613. --enable-ssse3 (enable use of SSSE3 instructions if available)
    614. type: bool default: true
    615. --enable-sse4-1 (enable use of SSE4.1 instructions if available)
    616. type: bool default: true
    617. --enable-sse4-2 (enable use of SSE4.2 instructions if available)
    618. type: bool default: true
    619. --enable-sahf (enable use of SAHF instruction if available (X64 only))
    620. type: bool default: true
    621. --enable-avx (enable use of AVX instructions if available)
    622. type: bool default: true
    623. --enable-fma3 (enable use of FMA3 instructions if available)
    624. type: bool default: true
    625. --enable-bmi1 (enable use of BMI1 instructions if available)
    626. type: bool default: true
    627. --enable-bmi2 (enable use of BMI2 instructions if available)
    628. type: bool default: true
    629. --enable-lzcnt (enable use of LZCNT instruction if available)
    630. type: bool default: true
    631. --enable-popcnt (enable use of POPCNT instruction if available)
    632. type: bool default: true
    633. --arm-arch (generate instructions for the selected ARM architecture if available: armv6, armv7, armv7+sudiv or armv8)
    634. type: string default: armv8
    635. --force-long-branches (force all emitted branches to be in long mode (MIPS/PPC only))
    636. type: bool default: false
    637. --mcpu (enable optimization for specific cpu)
    638. type: string default: auto
    639. --partial-constant-pool (enable use of partial constant pools (X64 only))
    640. type: bool default: true
    641. --sim-arm64-optional-features (enable optional features on the simulator for testing: none or all)
    642. type: string default: none
    643. --enable-source-at-csa-bind (Include source information in the binary at CSA bind locations.)
    644. type: bool default: false
    645. --enable-armv7 (deprecated (use --arm_arch instead))
    646. type: maybe_bool default: unset
    647. --enable-vfp3 (deprecated (use --arm_arch instead))
    648. --enable-32dregs (deprecated (use --arm_arch instead))
    649. --enable-neon (deprecated (use --arm_arch instead))
    650. type: maybe_bool default: unset
    651. --enable-sudiv (deprecated (use --arm_arch instead))
    652. type: maybe_bool default: unset
    653. --enable-armv8 (deprecated (use --arm_arch instead))
    654. type: maybe_bool default: unset
    655. --enable-regexp-unaligned-accesses (enable unaligned accesses for the regexp engine)
    656. type: bool default: true
    657. --script-streaming (enable parsing on background)
    658. type: bool default: true
    659. --stress-background-compile (stress test parsing on background)
    660. type: bool default: false
    661. --finalize-streaming-on-background (perform the script streaming finalization on the background thread)
    662. type: bool default: false
    663. --disable-old-api-accessors (Disable old-style API accessors whose setters trigger through the prototype chain)
    664. type: bool default: false
    665. --expose-gc (expose gc extension)
    666. type: bool default: false
    667. --expose-gc-as (expose gc extension under the specified name)
    668. type: string default: nullptr
    669. --expose-externalize-string (expose externalize string extension)
    670. type: bool default: false
    671. --expose-trigger-failure (expose trigger-failure extension)
    672. type: bool default: false
    673. --stack-trace-limit (number of stack frames to capture)
    674. type: int default: 10
    675. --builtins-in-stack-traces (show built-in functions in stack traces)
    676. type: bool default: false
    677. --experimental-stack-trace-frames (enable experimental frames (API/Builtins) and stack trace layout)
    678. type: bool default: false
    679. --disallow-code-generation-from-strings (disallow eval and friends)
    680. type: bool default: false
    681. --expose-async-hooks (expose async_hooks object)
    682. type: bool default: false
    683. --expose-cputracemark-as (expose cputracemark extension under the specified name)
    684. type: string default: nullptr
    685. --allow-unsafe-function-constructor (allow invoking the function constructor without security checks)
    686. type: bool default: false
    687. --force-slow-path (always take the slow path for builtins)
    688. type: bool default: false
    689. --test-small-max-function-context-stub-size (enable testing the function context size overflow path by making the maximum size smaller)
    690. type: bool default: false
    691. --inline-new (use fast inline allocation)
    692. type: bool default: true
    693. --trace (trace javascript function calls)
    694. type: bool default: false
    695. --trace-wasm (trace wasm function calls)
    696. type: bool default: false
    697. --lazy (use lazy compilation)
    698. type: bool default: true
    699. --max-lazy (ignore eager compilation hints)
    700. type: bool default: false
    701. --trace-opt (trace lazy optimization)
    702. type: bool default: false
    703. --trace-opt-verbose (extra verbose compilation tracing)
    704. type: bool default: false
    705. --trace-opt-stats (trace lazy optimization statistics)
    706. type: bool default: false
    707. --trace-deopt (trace optimize function deoptimization)
    708. type: bool default: false
    709. --trace-file-names (include file names in trace-opt/trace-deopt output)
    710. type: bool default: false
    711. --always-opt (always try to optimize functions)
    712. type: bool default: false
    713. --always-osr (always try to OSR functions)
    714. type: bool default: false
    715. --prepare-always-opt (prepare for turning on always opt)
    716. type: bool default: false
    717. --trace-serializer (print code serializer trace)
    718. type: bool default: false
    719. --compilation-cache (enable compilation cache)
    720. type: bool default: true
    721. --cache-prototype-transitions (cache prototype transitions)
    722. type: bool default: true
    723. --parallel-compile-tasks (enable parallel compile tasks)
    724. type: bool default: false
    725. --compiler-dispatcher (enable compiler dispatcher)
    726. type: bool default: false
    727. --trace-compiler-dispatcher (trace compiler dispatcher activity)
    728. type: bool default: false
    729. --cpu-profiler-sampling-interval (CPU profiler sampling interval in microseconds)
    730. type: int default: 1000
    731. --trace-side-effect-free-debug-evaluate (print debug messages for side-effect-free debug-evaluate for testing)
    732. type: bool default: false
    733. --hard-abort (abort by crashing)
    734. type: bool default: true
    735. --expose-inspector-scripts (expose injected-script-source.js for debugging)
    736. type: bool default: false
    737. --stack-size (default size of stack region v8 is allowed to use (in kBytes))
    738. type: int default: 984
    739. --max-stack-trace-source-length (maximum length of function source code printed in a stack trace.)
    740. type: int default: 300
    741. --clear-exceptions-on-js-entry (clear pending exceptions when entering JavaScript)
    742. type: bool default: false
    743. --histogram-interval (time interval in ms for aggregating memory histograms)
    744. type: int default: 600000
    745. --heap-profiler-trace-objects (Dump heap object allocations/movements/size_updates)
    746. type: bool default: false
    747. --heap-profiler-use-embedder-graph (Use the new EmbedderGraph API to get embedder nodes)
    748. type: bool default: true
    749. --heap-snapshot-string-limit (truncate strings to this length in the heap snapshot)
    750. type: int default: 1024
    751. --sampling-heap-profiler-suppress-randomness (Use constant sample intervals to eliminate test flakiness)
    752. type: bool default: false
    753. --use-idle-notification (Use idle notification to reduce memory footprint.)
    754. type: bool default: true
    755. --trace-ic (trace inline cache state transitions for tools/ic-processor)
    756. type: bool default: false
    757. --modify-field-representation-inplace (enable in-place field representation updates)
    758. type: bool default: true
    759. --max-polymorphic-map-count (maximum number of maps to track in POLYMORPHIC state)
    760. type: int default: 4
    761. --native-code-counters (generate extra code for manipulating stats counters)
    762. type: bool default: false
    763. --thin-strings (Enable ThinString support)
    764. type: bool default: true
    765. --trace-prototype-users (Trace updates to prototype user tracking)
    766. type: bool default: false
    767. --trace-for-in-enumerate (Trace for-in enumerate slow-paths)
    768. type: bool default: false
    769. --trace-maps (trace map creation)
    770. type: bool default: false
    771. --trace-maps-details (also log map details)
    772. type: bool default: true
    773. --allow-natives-syntax (allow natives syntax)
    774. type: bool default: false
    775. --allow-natives-for-differential-fuzzing (allow only natives explicitly allowlisted for differential fuzzers)
    776. type: bool default: false
    777. --parse-only (only parse the sources)
    778. type: bool default: false
    779. --trace-sim (Trace simulator execution)
    780. type: bool default: false
    781. --debug-sim (Enable debugging the simulator)
    782. type: bool default: false
    783. --check-icache (Check icache flushes in ARM and MIPS simulator)
    784. type: bool default: false
    785. --stop-sim-at (Simulator stop after x number of instructions)
    786. type: int default: 0
    787. --sim-stack-alignment (Stack alingment in bytes in simulator (4 or 8, 8 is default))
    788. type: int default: 8
    789. --sim-stack-size (Stack size of the ARM64, MIPS64 and PPC64 simulator in kBytes (default is 2 MB))
    790. type: int default: 2048
    791. --log-colour (When logging, try to use coloured output.)
    792. type: bool default: true
    793. --trace-sim-messages (Trace simulator debug messages. Implied by --trace-sim.)
    794. type: bool default: false
    795. --async-stack-traces (include async stack traces in Error.stack)
    796. type: bool default: true
    797. --stack-trace-on-illegal (print stack trace when an illegal exception is thrown)
    798. type: bool default: false
    799. --abort-on-uncaught-exception (abort program (dump core) when an uncaught exception is thrown)
    800. type: bool default: false
    801. --correctness-fuzzer-suppressions (Suppress certain unspecified behaviors to ease correctness fuzzing: Abort program when the stack overflows or a string exceeds maximum length (as opposed to throwing RangeError). Use a fixed suppression string for error messages.)
    802. type: bool default: false
    803. --randomize-hashes (randomize hashes to avoid predictable hash collisions (with snapshots this option cannot override the baked-in seed))
    804. type: bool default: true
    805. --rehash-snapshot (rehash strings from the snapshot to override the baked-in seed)
    806. type: bool default: true
    807. --hash-seed (Fixed seed to use to hash property keys (0 means random)(with snapshots this option cannot override the baked-in seed))
    808. type: uint64 default: 0
    809. --random-seed (Default seed for initializing random generator (0, the default, means to use system random).)
    810. type: int default: 0
    811. --fuzzer-random-seed (Default seed for initializing fuzzer random generator (0, the default, means to use v8's random number generator seed).)
    812. type: int default: 0
    813. --trace-rail (trace RAIL mode)
    814. type: bool default: false
    815. --print-all-exceptions (print exception object and stack trace on each thrown exception)
    816. type: bool default: false
    817. --detailed-error-stack-trace (includes arguments for each function call in the error stack frames array)
    818. type: bool default: false
    819. --adjust-os-scheduling-parameters (adjust OS specific scheduling params for the isolate)
    820. type: bool default: true
    821. --runtime-call-stats (report runtime call counts and times)
    822. type: bool default: false
    823. --rcs (report runtime call counts and times)
    824. type: bool default: false
    825. --rcs-cpu-time (report runtime times in cpu time (the default is wall time))
    826. type: bool default: false
    827. --profile-deserialization (Print the time it takes to deserialize the snapshot.)
    828. type: bool default: false
    829. --serialization-statistics (Collect statistics on serialized objects.)
    830. type: bool default: false
    831. --serialization-chunk-size (Custom size for serialization chunks)
    832. type: uint default: 4096
    833. --regexp-optimization (generate optimized regexp code)
    834. type: bool default: true
    835. --regexp-mode-modifiers (enable inline flags in regexp.)
    836. type: bool default: false
    837. --regexp-interpret-all (interpret all regexp code)
    838. type: bool default: false
    839. --regexp-tier-up (enable regexp interpreter and tier up to the compiler after the number of executions set by the tier up ticks flag)
    840. type: bool default: true
    841. --regexp-tier-up-ticks (set the number of executions for the regexp interpreter before tiering-up to the compiler)
    842. type: int default: 1
    843. --regexp-peephole-optimization (enable peephole optimization for regexp bytecode)
    844. type: bool default: true
    845. --trace-regexp-peephole-optimization (trace regexp bytecode peephole optimization)
    846. type: bool default: false
    847. --trace-regexp-bytecodes (trace regexp bytecode execution)
    848. type: bool default: false
    849. --trace-regexp-assembler (trace regexp macro assembler calls.)
    850. type: bool default: false
    851. --trace-regexp-parser (trace regexp parsing)
    852. type: bool default: false
    853. --trace-regexp-tier-up (trace regexp tiering up execution)
    854. type: bool default: false
    855. --testing-bool-flag (testing_bool_flag)
    856. type: bool default: true
    857. --testing-maybe-bool-flag (testing_maybe_bool_flag)
    858. type: maybe_bool default: unset
    859. --testing-int-flag (testing_int_flag)
    860. type: int default: 13
    861. --testing-float-flag (float-flag)
    862. type: float default: 2.5
    863. --testing-string-flag (string-flag)
    864. type: string default: Hello, world!
    865. --testing-prng-seed (Seed used for threading test randomness)
    866. type: int default: 42
    867. --testing-d8-test-runner (test runner turns on this flag to enable a check that the function was prepared for optimization before marking it for optimization)
    868. type: bool default: false
    869. --fuzzing (Fuzzers use this flag to signal that they are ... fuzzing. This causes intrinsics to fail silently (e.g. return undefined) on invalid usage.)
    870. type: bool default: false
    871. --embedded-src (Path for the generated embedded data file. (mksnapshot only))
    872. type: string default: nullptr
    873. --embedded-variant (Label to disambiguate symbols in embedded data file. (mksnapshot only))
    874. type: string default: nullptr
    875. --startup-src (Write V8 startup as C++ src. (mksnapshot only))
    876. type: string default: nullptr
    877. --startup-blob (Write V8 startup blob file. (mksnapshot only))
    878. type: string default: nullptr
    879. --target-arch (The mksnapshot target arch. (mksnapshot only))
    880. type: string default: nullptr
    881. --target-os (The mksnapshot target os. (mksnapshot only))
    882. type: string default: nullptr
    883. --target-is-simulator (Instruct mksnapshot that the target is meant to run in the simulator and it can generate simulator-specific instructions. (mksnapshot only))
    884. type: bool default: false
    885. --minor-mc-parallel-marking (use parallel marking for the young generation)
    886. type: bool default: true
    887. --trace-minor-mc-parallel-marking (trace parallel marking for the young generation)
    888. type: bool default: false
    889. --minor-mc (perform young generation mark compact GCs)
    890. type: bool default: false
    891. --help (Print usage message, including flags, on console)
    892. type: bool default: true
    893. --dump-counters (Dump counters on exit)
    894. type: bool default: false
    895. --dump-counters-nvp (Dump counters as name-value pairs on exit)
    896. type: bool default: false
    897. --use-external-strings (Use external strings for source code)
    898. type: bool default: false
    899. --map-counters (Map counters to a file)
    900. type: string default:
    901. --mock-arraybuffer-allocator (Use a mock ArrayBuffer allocator for testing.)
    902. type: bool default: false
    903. --mock-arraybuffer-allocator-limit (Memory limit for mock ArrayBuffer allocator used to simulate OOM for testing.)
    904. type: size_t default: 0
    905. --gdbjit (enable GDBJIT interface)
    906. type: bool default: false
    907. --gdbjit-full (enable GDBJIT interface for all code objects)
    908. type: bool default: false
    909. --gdbjit-dump (dump elf objects with debug info to disk)
    910. type: bool default: false
    911. --gdbjit-dump-filter (dump only objects containing this substring)
    912. type: string default:
    913. --log (Minimal logging (no API, code, GC, suspect, or handles samples).)
    914. type: bool default: false
    915. --log-all (Log all events to the log file.)
    916. type: bool default: false
    917. --log-api (Log API events to the log file.)
    918. type: bool default: false
    919. --log-code (Log code events to the log file without profiling.)
    920. type: bool default: false
    921. --log-handles (Log global handle events.)
    922. type: bool default: false
    923. --log-suspect (Log suspect operations.)
    924. type: bool default: false
    925. --log-source-code (Log source code.)
    926. type: bool default: false
    927. --log-function-events (Log function events (parse, compile, execute) separately.)
    928. type: bool default: false
    929. --prof (Log statistical profiling information (implies --log-code).)
    930. type: bool default: false
    931. --detailed-line-info (Always generate detailed line information for CPU profiling.)
    932. type: bool default: false
    933. --prof-sampling-interval (Interval for --prof samples (in microseconds).)
    934. type: int default: 1000
    935. --prof-cpp (Like --prof, but ignore generated code.)
    936. type: bool default: false
    937. --prof-browser-mode (Used with --prof, turns on browser-compatible mode for profiling.)
    938. type: bool default: true
    939. --logfile (Specify the name of the log file.)
    940. type: string default: v8.log
    941. --logfile-per-isolate (Separate log files for each isolate.)
    942. type: bool default: true
    943. --ll-prof (Enable low-level linux profiler.)
    944. type: bool default: false
    945. --gc-fake-mmap (Specify the name of the file for fake gc mmap used in ll_prof)
    946. type: string default: /tmp/__v8_gc__
    947. --log-internal-timer-events (Time internal events.)
    948. type: bool default: false
    949. --redirect-code-traces (output deopt information and disassembly into file code-<pid>-<isolate id>.asm)
    950. type: bool default: false
    951. --redirect-code-traces-to (output deopt information and disassembly into the given file)
    952. type: string default: nullptr
    953. --print-opt-source (print source code of optimized and inlined functions)
    954. type: bool default: false
    955. --vtune-prof-annotate-wasm (Used when v8_enable_vtunejit is enabled, load wasm source map and provide annotate support (experimental).)
    956. type: bool default: false
    957. --win64-unwinding-info (Enable unwinding info for Windows/x64)
    958. type: bool default: true
    959. --interpreted-frames-native-stack (Show interpreted frames on the native stack (useful for external profilers).)
    960. type: bool default: false
    961. --predictable (enable predictable mode)
    962. type: bool default: false
    963. --predictable-gc-schedule (Predictable garbage collection schedule. Fixes heap growing, idle, and memory reducing behavior.)
    964. type: bool default: false
    965. --single-threaded (disable the use of background tasks)
    966. type: bool default: false
    967. --single-threaded-gc (disable the use of background gc tasks)
    968. type: bool default: false

    Particularly useful ones:

    Continuous Benchmarks

    See our benchmarks over here

    1. interface ExecTimeData {
    2. mean: number;
    3. stddev: number;
    4. user: number;
    5. system: number;
    6. min: number;
    7. max: number;
    8. }
    9. interface BenchmarkData {
    10. created_at: string;
    11. sha1: string;
    12. benchmark: {
    13. [key: string]: ExecTimeData;
    14. };
    15. binarySizeData: {
    16. [key: string]: number;
    17. };
    18. threadCountData: {
    19. [key: string]: number;
    20. };
    21. syscallCountData: {
    22. [key: string]: number;
    23. }