perf(electron): compile the main-process bundle from a V8 code cache (#1696)

main.js is now a small entry that enables Node's on-disk V8 compile cache under userData/v8-compile-cache and then requires the application bundle main.app.js. Warm launches reach app.whenReady about 13 ms sooner at the median; IPTVNATOR_DISABLE_COMPILE_CACHE=1 turns it off and IPTVNATOR_COMPILE_CACHE_DIR relocates it.

Packaging now ships main.app.js explicitly and verify:package-layout requires the main-process entry files in app.asar, because nx-electron copies the backend through an allowlist. The Xtream benchmark build identity hashes both the launcher and the bundle.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 authored and GitHub committed 2026-09-26 19:19:30 +02:00
1 parent 0f1cad4b16
commit 587e19541f
12 files changed
+587 -20

No files matched your search

@@ -0,0 +1,9 @@
---
type: perf
area: electron
---
The desktop app now keeps a compiled copy of its startup code next to its
user data, so every launch after the first skips part of the JavaScript
compilation and reaches the window a little sooner. Set
`IPTVNATOR_DISABLE_COMPILE_CACHE=1` to turn this off.