From 09125f3f5c56747d87f1929149d5572f3ac58725 Mon Sep 17 00:00:00 2001 From: Jonathan Sykes Date: Wed, 7 Oct 2026 17:21:08 +0800 Subject: [PATCH] Record after-phase0 performance benchmark results --- perf/baseline.mjs | 10 +- perf/results/after-phase0-2026-10-07.json | 1639 +++++++++++++++++++++ 2 files changed, 1647 insertions(+), 2 deletions(-) create mode 100644 perf/results/after-phase0-2026-10-07.json diff --git a/perf/baseline.mjs b/perf/baseline.mjs index 54fd48f..7a08081 100755 --- a/perf/baseline.mjs +++ b/perf/baseline.mjs @@ -214,9 +214,15 @@ class ServerManager { async stop() { if (this.serverProcess) { - this.serverProcess.kill('SIGKILL'); + const proc = this.serverProcess; this.serverProcess = null; - await sleep(100); + await new Promise((resolve) => { + if (proc.exitCode !== null) return resolve(); + proc.once('exit', () => resolve()); + proc.kill('SIGKILL'); + setTimeout(resolve, 2000); + }); + await sleep(200); } } diff --git a/perf/results/after-phase0-2026-10-07.json b/perf/results/after-phase0-2026-10-07.json new file mode 100644 index 0000000..c05adf5 --- /dev/null +++ b/perf/results/after-phase0-2026-10-07.json @@ -0,0 +1,1639 @@ +{ + "date": "2026-10-07T08:47:41.361Z", + "commit": "7bc5b4f8b50d78ece3cca5100d54a97fece2748a", + "runsConfigured": 5, + "browsers": { + "chromium": { + "lte": { + "cold": { + "requestCount": { + "median": 166, + "min": 166, + "max": 166, + "values": [ + 166, + 166, + 166, + 166, + 166 + ] + }, + "wireBytes": { + "median": 1040158, + "min": 1040158, + "max": 1040158, + "values": [ + 1040158, + 1040158, + 1040158, + 1040158, + 1040158 + ] + }, + "fcp": { + "median": 1572, + "min": 1552, + "max": 1592, + "values": [ + 1572, + 1580, + 1564, + 1592, + 1552 + ] + }, + "lcp": { + "median": 1916, + "min": 1864, + "max": 1956, + "values": [ + 1864, + 1916, + 1916, + 1956, + 1916 + ] + }, + "domContentLoaded": { + "median": 10332, + "min": 10207, + "max": 10728, + "values": [ + 10728, + 10207, + 10357, + 10290, + 10332 + ] + }, + "bootDone": { + "median": 10480, + "min": 10345, + "max": 10868, + "values": [ + 10868, + 10345, + 10514, + 10461, + 10480 + ] + }, + "longTaskTotal": { + "median": 454, + "min": 425, + "max": 605, + "values": [ + 454, + 425, + 605, + 512, + 448 + ] + }, + "swInstallDuration": { + "median": 38364, + "min": 36164, + "max": 38739, + "values": [ + 38739, + 38235, + 36164, + 38364, + 38378 + ] + }, + "swInstallBytes": { + "median": 1040158, + "min": 1040158, + "max": 1040158, + "values": [ + 1040158, + 1040158, + 1040158, + 1040158, + 1040158 + ] + }, + "storageEstimate": { + "usage": 3484237, + "quota": 5372193357 + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 27018, + "js": 478105, + "css": 130718, + "fonts": 397072, + "images": 6278, + "media": 0, + "api": 336, + "other": 631 + } + }, + "warm": { + "requestCount": { + "median": 4, + "min": 3, + "max": 4, + "values": [ + 4, + 3, + 4, + 4, + 4 + ] + }, + "wireBytes": { + "median": 5331, + "min": 97, + "max": 5331, + "values": [ + 5331, + 97, + 5331, + 5331, + 5331 + ] + }, + "fcp": { + "median": 192, + "min": 180, + "max": 228, + "values": [ + 180, + 188, + 192, + 228, + 212 + ] + }, + "lcp": { + "median": 704, + "min": 180, + "max": 896, + "values": [ + 180, + 188, + 704, + 896, + 780 + ] + }, + "domContentLoaded": { + "median": 570, + "min": 555, + "max": 718, + "values": [ + 555, + 570, + 560, + 718, + 625 + ] + }, + "bootDone": { + "median": 692, + "min": 680, + "max": 873, + "values": [ + 684, + 692, + 680, + 873, + 760 + ] + }, + "longTaskTotal": { + "median": 169, + "min": 159, + "max": 202, + "values": [ + 169, + 161, + 159, + 202, + 180 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 80, + "min": 76, + "max": 92, + "values": [ + 76, + 80, + 84, + 92, + 76 + ] + }, + "lcp": { + "median": 80, + "min": 76, + "max": 92, + "values": [ + 76, + 80, + 84, + 92, + 76 + ] + }, + "domContentLoaded": { + "median": 232, + "min": 224, + "max": 254, + "values": [ + 224, + 232, + 238, + 254, + 228 + ] + }, + "bootDone": { + "median": 259, + "min": 250, + "max": 281, + "values": [ + 250, + 259, + 264, + 281, + 257 + ] + }, + "reloadDuration": { + "median": 282, + "min": 268, + "max": 303, + "values": [ + 268, + 283, + 282, + 303, + 275 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 89, + "min": 89, + "max": 89, + "values": [ + 89, + 89, + 89, + 89, + 89 + ] + }, + "wireBytes": { + "median": 611338, + "min": 611338, + "max": 611338, + "values": [ + 611338, + 611338, + 611338, + 611338, + 611338 + ] + }, + "duration": { + "median": 2155, + "min": 115, + "max": 2312, + "values": [ + 2312, + 115, + 2155, + 2077, + 2246 + ] + }, + "wireBytesByType": { + "html": 17994, + "js": 266966, + "css": 65359, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 62, + "other": 631 + } + }, + "updateCss": { + "requestCount": { + "median": 89, + "min": 89, + "max": 89, + "values": [ + 89, + 89, + 89, + 89, + 89 + ] + }, + "wireBytes": { + "median": 611476, + "min": 611476, + "max": 611476, + "values": [ + 611476, + 611476, + 611476, + 611476, + 611476 + ] + }, + "duration": { + "median": 2107, + "min": 2053, + "max": 2179, + "values": [ + 2179, + 2158, + 2053, + 2062, + 2107 + ] + }, + "wireBytesByType": { + "html": 18018, + "js": 267052, + "css": 65387, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 62, + "other": 631 + } + } + }, + "lossy": { + "cold": { + "requestCount": { + "median": 166, + "min": 166, + "max": 166, + "values": [ + 166, + 166, + 166, + 166, + 166 + ] + }, + "wireBytes": { + "median": 1040225, + "min": 1040225, + "max": 1040225, + "values": [ + 1040225, + 1040225, + 1040225, + 1040225, + 1040225 + ] + }, + "fcp": { + "median": 2372, + "min": 2360, + "max": 2400, + "values": [ + 2360, + 2368, + 2392, + 2400, + 2372 + ] + }, + "lcp": { + "median": 2940, + "min": 2924, + "max": 2976, + "values": [ + 2924, + 2940, + 2956, + 2976, + 2940 + ] + }, + "domContentLoaded": { + "median": 16236, + "min": 16173, + "max": 16307, + "values": [ + 16179, + 16236, + 16267, + 16307, + 16173 + ] + }, + "bootDone": { + "median": 16408, + "min": 16303, + "max": 16449, + "values": [ + 16349, + 16410, + 16408, + 16449, + 16303 + ] + }, + "longTaskTotal": { + "median": 480, + "min": 450, + "max": 501, + "values": [ + 477, + 497, + 480, + 501, + 450 + ] + }, + "swInstallDuration": { + "median": 42031, + "min": 41980, + "max": 44332, + "values": [ + 41984, + 44332, + 42031, + 41980, + 44087 + ] + }, + "swInstallBytes": { + "median": 1040225, + "min": 1040225, + "max": 1040225, + "values": [ + 1040225, + 1040225, + 1040225, + 1040225, + 1040225 + ] + }, + "storageEstimate": { + "usage": 3484312, + "quota": 5372193432 + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 27027, + "js": 478107, + "css": 130774, + "fonts": 397072, + "images": 6278, + "media": 0, + "api": 336, + "other": 631 + } + }, + "warm": { + "requestCount": { + "median": 4, + "min": 4, + "max": 4, + "values": [ + 4, + 4, + 4, + 4, + 4 + ] + }, + "wireBytes": { + "median": 5332, + "min": 5332, + "max": 5332, + "values": [ + 5332, + 5332, + 5332, + 5332, + 5332 + ] + }, + "fcp": { + "median": 192, + "min": 188, + "max": 264, + "values": [ + 204, + 192, + 264, + 188, + 188 + ] + }, + "lcp": { + "median": 780, + "min": 188, + "max": 916, + "values": [ + 780, + 788, + 916, + 720, + 188 + ] + }, + "domContentLoaded": { + "median": 620, + "min": 576, + "max": 737, + "values": [ + 620, + 630, + 737, + 576, + 581 + ] + }, + "bootDone": { + "median": 768, + "min": 707, + "max": 897, + "values": [ + 768, + 770, + 897, + 707, + 709 + ] + }, + "longTaskTotal": { + "median": 195, + "min": 168, + "max": 213, + "values": [ + 194, + 203, + 213, + 195, + 168 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 76, + "min": 72, + "max": 84, + "values": [ + 72, + 76, + 80, + 76, + 84 + ] + }, + "lcp": { + "median": 76, + "min": 72, + "max": 84, + "values": [ + 72, + 76, + 80, + 76, + 84 + ] + }, + "domContentLoaded": { + "median": 216, + "min": 210, + "max": 240, + "values": [ + 216, + 216, + 229, + 210, + 240 + ] + }, + "bootDone": { + "median": 241, + "min": 236, + "max": 272, + "values": [ + 241, + 241, + 255, + 236, + 272 + ] + }, + "reloadDuration": { + "median": 262, + "min": 255, + "max": 292, + "values": [ + 255, + 262, + 275, + 258, + 292 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 89, + "min": 88, + "max": 89, + "values": [ + 88, + 89, + 88, + 89, + 89 + ] + }, + "wireBytes": { + "median": 611338, + "min": 606104, + "max": 611338, + "values": [ + 606104, + 611338, + 606104, + 611338, + 611338 + ] + }, + "duration": { + "median": 2115, + "min": 2079, + "max": 2180, + "values": [ + 2180, + 2081, + 2117, + 2079, + 2115 + ] + }, + "wireBytesByType": { + "html": 17994, + "js": 261732, + "css": 65359, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 62, + "other": 631 + } + }, + "updateCss": { + "requestCount": { + "median": 89, + "min": 89, + "max": 89, + "values": [ + 89, + 89, + 89, + 89, + 89 + ] + }, + "wireBytes": { + "median": 611476, + "min": 611476, + "max": 611476, + "values": [ + 611476, + 611476, + 611476, + 611476, + 611476 + ] + }, + "duration": { + "median": 2116, + "min": 2039, + "max": 2169, + "values": [ + 2169, + 2069, + 2039, + 2150, + 2116 + ] + }, + "wireBytesByType": { + "html": 18018, + "js": 267052, + "css": 65387, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 62, + "other": 631 + } + } + } + }, + "webkit": { + "lte": { + "cold": { + "requestCount": { + "median": 164, + "min": 164, + "max": 164, + "values": [ + 164, + 164, + 164, + 164, + 164 + ] + }, + "wireBytes": { + "median": 1180749, + "min": 1180749, + "max": 1180749, + "values": [ + 1180749, + 1180749, + 1180749, + 1180749, + 1180749 + ] + }, + "fcp": { + "median": 1100, + "min": 1024, + "max": 1145, + "values": [ + 1145, + 1099, + 1100, + 1024, + 1133 + ] + }, + "lcp": { + "median": 1303, + "min": 1217, + "max": 1407, + "values": [ + 1379, + 1301, + 1303, + 1217, + 1407 + ] + }, + "domContentLoaded": { + "median": 3260, + "min": 3123, + "max": 3297, + "values": [ + 3297, + 3290, + 3258, + 3123, + 3260 + ] + }, + "bootDone": { + "median": 3290, + "min": 3135, + "max": 3320, + "values": [ + 3320, + 3304, + 3290, + 3135, + 3283 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "swInstallDuration": { + "median": 31026, + "min": 28718, + "max": 31045, + "values": [ + 31026, + 31045, + 31028, + 30937, + 28718 + ] + }, + "swInstallBytes": { + "median": 1180749, + "min": 1180749, + "max": 1180749, + "values": [ + 1180749, + 1180749, + 1180749, + 1180749, + 1180749 + ] + }, + "storageEstimate": { + "usage": null, + "quota": null + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 32556, + "js": 586396, + "css": 156760, + "fonts": 397072, + "images": 6278, + "media": 0, + "api": 121, + "other": 1566 + } + }, + "warm": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 117, + "min": 110, + "max": 123, + "values": [ + 110, + 118, + 123, + 117, + 114 + ] + }, + "lcp": { + "median": 146, + "min": 110, + "max": 150, + "values": [ + 110, + 146, + 150, + 146, + 141 + ] + }, + "domContentLoaded": { + "median": 108, + "min": 102, + "max": 113, + "values": [ + 102, + 110, + 113, + 108, + 104 + ] + }, + "bootDone": { + "median": 139, + "min": 130, + "max": 145, + "values": [ + 130, + 140, + 145, + 139, + 134 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 113, + "min": 113, + "max": 118, + "values": [ + 118, + 113, + 113, + 116, + 113 + ] + }, + "lcp": { + "median": 144, + "min": 113, + "max": 147, + "values": [ + 147, + 113, + 144, + 145, + 113 + ] + }, + "domContentLoaded": { + "median": 104, + "min": 103, + "max": 108, + "values": [ + 108, + 104, + 103, + 106, + 104 + ] + }, + "bootDone": { + "median": 137, + "min": 135, + "max": 142, + "values": [ + 142, + 135, + 137, + 139, + 135 + ] + }, + "reloadDuration": { + "median": 148, + "min": 141, + "max": 154, + "values": [ + 154, + 142, + 148, + 150, + 141 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 87, + "min": 87, + "max": 87, + "values": [ + 87, + 87, + 87, + 87, + 87 + ] + }, + "wireBytes": { + "median": 680822, + "min": 680822, + "max": 680822, + "values": [ + 680822, + 680822, + 680822, + 680822, + 680822 + ] + }, + "duration": { + "median": 4584, + "min": 4571, + "max": 4693, + "values": [ + 4584, + 4630, + 4571, + 4579, + 4693 + ] + }, + "wireBytesByType": { + "html": 21708, + "js": 319661, + "css": 78344, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 0, + "other": 783 + } + }, + "updateCss": { + "requestCount": { + "median": 87, + "min": 87, + "max": 87, + "values": [ + 87, + 87, + 87, + 87, + 87 + ] + }, + "wireBytes": { + "median": 680831, + "min": 680831, + "max": 680831, + "values": [ + 680831, + 680831, + 680831, + 680831, + 680831 + ] + }, + "duration": { + "median": 4550, + "min": 1978, + "max": 4686, + "values": [ + 4686, + 4603, + 4550, + 1978, + 3477 + ] + }, + "wireBytesByType": { + "html": 21704, + "js": 319638, + "css": 78380, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 0, + "other": 783 + } + } + }, + "lossy": { + "cold": { + "requestCount": { + "median": 164, + "min": 164, + "max": 164, + "values": [ + 164, + 164, + 164, + 164, + 164 + ] + }, + "wireBytes": { + "median": 1180749, + "min": 1180749, + "max": 1180749, + "values": [ + 1180749, + 1180749, + 1180749, + 1180749, + 1180749 + ] + }, + "fcp": { + "median": 3738, + "min": 3214, + "max": 5331, + "values": [ + 3865, + 3738, + 5331, + 3214, + 3533 + ] + }, + "lcp": { + "median": 3905, + "min": 3409, + "max": 5537, + "values": [ + 4043, + 3905, + 5537, + 3409, + 3734 + ] + }, + "domContentLoaded": { + "median": 7294, + "min": 6992, + "max": 8490, + "values": [ + 6992, + 7203, + 8490, + 7329, + 7294 + ] + }, + "bootDone": { + "median": 7305, + "min": 7009, + "max": 8506, + "values": [ + 7009, + 7214, + 8506, + 7353, + 7305 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "swInstallDuration": { + "median": 35101, + "min": 32743, + "max": 38095, + "values": [ + 35101, + 33844, + 38095, + 32743, + 35372 + ] + }, + "swInstallBytes": { + "median": 1180749, + "min": 1180749, + "max": 1180749, + "values": [ + 1180749, + 1180749, + 1180749, + 1180749, + 1180749 + ] + }, + "storageEstimate": { + "usage": null, + "quota": null + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 32556, + "js": 586396, + "css": 156760, + "fonts": 397072, + "images": 6278, + "media": 0, + "api": 121, + "other": 1566 + } + }, + "warm": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 110, + "min": 106, + "max": 119, + "values": [ + 106, + 110, + 111, + 106, + 119 + ] + }, + "lcp": { + "median": 110, + "min": 106, + "max": 119, + "values": [ + 106, + 110, + 111, + 106, + 119 + ] + }, + "domContentLoaded": { + "median": 101, + "min": 97, + "max": 110, + "values": [ + 98, + 101, + 103, + 97, + 110 + ] + }, + "bootDone": { + "median": 128, + "min": 125, + "max": 137, + "values": [ + 125, + 128, + 132, + 126, + 137 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 113, + "min": 102, + "max": 121, + "values": [ + 113, + 113, + 108, + 121, + 102 + ] + }, + "lcp": { + "median": 113, + "min": 102, + "max": 150, + "values": [ + 113, + 113, + 108, + 150, + 102 + ] + }, + "domContentLoaded": { + "median": 104, + "min": 97, + "max": 112, + "values": [ + 104, + 104, + 99, + 112, + 97 + ] + }, + "bootDone": { + "median": 132, + "min": 122, + "max": 142, + "values": [ + 132, + 134, + 129, + 142, + 122 + ] + }, + "reloadDuration": { + "median": 139, + "min": 128, + "max": 155, + "values": [ + 139, + 141, + 138, + 155, + 128 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 87, + "min": 87, + "max": 87, + "values": [ + 87, + 87, + 87, + 87, + 87 + ] + }, + "wireBytes": { + "median": 680822, + "min": 680822, + "max": 680822, + "values": [ + 680822, + 680822, + 680822, + 680822, + 680822 + ] + }, + "duration": { + "median": 10017, + "min": 9981, + "max": 10082, + "values": [ + 10017, + 10046, + 10082, + 9981, + 10006 + ] + }, + "wireBytesByType": { + "html": 21708, + "js": 319661, + "css": 78344, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 0, + "other": 783 + } + }, + "updateCss": { + "requestCount": { + "median": 87, + "min": 87, + "max": 87, + "values": [ + 87, + 87, + 87, + 87, + 87 + ] + }, + "wireBytes": { + "median": 680831, + "min": 680831, + "max": 680831, + "values": [ + 680831, + 680831, + 680831, + 680831, + 680831 + ] + }, + "duration": { + "median": 10013, + "min": 9985, + "max": 10021, + "values": [ + 10014, + 9985, + 10013, + 10021, + 10000 + ] + }, + "wireBytesByType": { + "html": 21704, + "js": 319638, + "css": 78380, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 0, + "other": 783 + } + } + } + } + } +} \ No newline at end of file