mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-11-14 00:07:00 +01:00
5 lines
12 KiB
HTML
5 lines
12 KiB
HTML
<!doctype html><html><head><meta charset="utf-8"><style>
|
||
body{font-family:var(--font-sans,system-ui);color:var(--foreground,#222);margin:0;line-height:1.5}h2{font-size:22px;margin:0 0 8px}p{color:var(--muted-foreground,#666);margin:10px 0;font-size:14px}select{font:inherit;background:var(--background,white);color:inherit;border:1px solid var(--border,#ddd);border-radius:6px;padding:7px}table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14px}th,td{padding:12px 6px;border-bottom:1px solid var(--border,#ddd);text-align:right;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left;padding-left:0}th{font-size:12px;color:var(--muted-foreground,#666)}.after{color:var(--success,#24724b);font-weight:600}details{margin-top:14px;font-size:13px}.scroll{overflow:auto}label{font-size:13px}#note{font-size:13px}
|
||
</style></head><body><h2>Go’s slower paths, corrected</h2><p>Same repository snapshot and 1,000-file directory fixture. Both runtimes rerun in alternating order; all seven successful response signatures still match.</p><label>Measure <select id="mode"><option value="1">Warm median, sequential requests</option><option value="8">Warm median, eight concurrent requests</option><option value="cold">First request</option></select></label><div class="scroll"><table><thead><tr><th>Use case</th><th>TypeScript</th><th>Go before</th><th>Go after</th></tr></thead><tbody id="rows"></tbody></table></div><p id="note"></p><details><summary>Other measured endpoints</summary><div class="scroll"><table><thead><tr><th>Use case</th><th>TypeScript</th><th>Go before</th><th>Go after</th></tr></thead><tbody id="other"></tbody></table></div></details><p>Counts now aggregate by directory in MongoDB. Website files use verified direct lookups or a collision-aware path index, with live snapshot and authorization checks.</p><p style="font-size:12px">Loopback backend timings, identity encoding, shared caches enabled, one worker. Two rounds; medians of per-round medians. Excludes GitHub, CDN and browser rendering. First masked/custom-path requests can still build an index. ZIP was not rerun because these changes do not alter its serving path.</p><script>
|
||
const rows=[{"name":"root directory","ts":{"output":{"status":200,"sha256":"52d03ac37d3e22e85d9629413d91a29d1f98410b2d34e419785ba1ad00dafa9d","entries":24},"coldMs":121.93528099999821,"warm":{"1":{"p50Ms":26.658700499998304,"p95Ms":43.35446200000024,"cpuMs":1005,"peakProcessTreeRssBytes":269817856,"requestsPerSecond":35.67854073891018},"8":{"p50Ms":148.71795650000058,"p95Ms":193.92164700000103,"cpuMs":845,"peakProcessTreeRssBytes":306208768,"requestsPerSecond":55.55278437889569}}},"goBefore":{"output":{"status":200,"sha256":"52d03ac37d3e22e85d9629413d91a29d1f98410b2d34e419785ba1ad00dafa9d","entries":24},"coldMs":19.393674499988265,"warm":{"1":{"p50Ms":7.403331500001514,"p95Ms":10.997728000002098,"cpuMs":185,"peakProcessTreeRssBytes":73525248,"requestsPerSecond":123.65028053177949},"8":{"p50Ms":9.341673500006436,"p95Ms":22.23802649999925,"cpuMs":180,"peakProcessTreeRssBytes":81291264,"requestsPerSecond":625.0860770621364}}},"goAfter":{"output":{"status":200,"sha256":"52d03ac37d3e22e85d9629413d91a29d1f98410b2d34e419785ba1ad00dafa9d","entries":24},"coldMs":15.809187500002736,"warm":{"1":{"p50Ms":7.785142000004271,"p95Ms":11.032116499998665,"cpuMs":195,"peakProcessTreeRssBytes":73023488,"requestsPerSecond":120.73566781543161},"8":{"p50Ms":9.650027499999851,"p95Ms":22.583658999999898,"cpuMs":185,"peakProcessTreeRssBytes":81084416,"requestsPerSecond":628.6360604239087}}}},{"name":"src directory","ts":{"output":{"status":200,"sha256":"012081e4d80b7bf24a5931359e89d5fefa0489a7989fd86ff4fdc01bb090d92b","entries":7},"coldMs":26.16265999999996,"warm":{"1":{"p50Ms":18.20889850000094,"p95Ms":21.920544000002337,"cpuMs":510,"peakProcessTreeRssBytes":306882560,"requestsPerSecond":53.00491309327751},"8":{"p50Ms":99.39222299999892,"p95Ms":110.18144500000017,"cpuMs":475,"peakProcessTreeRssBytes":307423232,"requestsPerSecond":83.30122797581699}}},"goBefore":{"output":{"status":200,"sha256":"012081e4d80b7bf24a5931359e89d5fefa0489a7989fd86ff4fdc01bb090d92b","entries":7},"coldMs":8.060878500000399,"warm":{"1":{"p50Ms":6.060465499998827,"p95Ms":7.087685999991663,"cpuMs":115,"peakProcessTreeRssBytes":82075648,"requestsPerSecond":160.05552208096725},"8":{"p50Ms":8.227547999998933,"p95Ms":12.091938999994454,"cpuMs":100,"peakProcessTreeRssBytes":85401600,"requestsPerSecond":852.6113434439787}}},"goAfter":{"output":{"status":200,"sha256":"012081e4d80b7bf24a5931359e89d5fefa0489a7989fd86ff4fdc01bb090d92b","entries":7},"coldMs":7.556426499999361,"warm":{"1":{"p50Ms":5.599485499998991,"p95Ms":6.702892999997857,"cpuMs":120,"peakProcessTreeRssBytes":81836032,"requestsPerSecond":172.5725228707791},"8":{"p50Ms":7.0273734999973385,"p95Ms":11.335802499997953,"cpuMs":95,"peakProcessTreeRssBytes":84021248,"requestsPerSecond":952.8766795594247}}}},{"name":"1000-file directory","ts":{"output":{"status":200,"sha256":"8b091406715c6232458f52f8c2516031ed2359d2586737cb3923559f96c8c841","entries":1000},"coldMs":102.47301200000038,"warm":{"1":{"p50Ms":91.85127300000022,"p95Ms":135.40886700000192,"cpuMs":3055,"peakProcessTreeRssBytes":339699712,"requestsPerSecond":10.540164558372513},"8":{"p50Ms":430.93180849999953,"p95Ms":689.4844045000063,"cpuMs":2340,"peakProcessTreeRssBytes":355284992,"requestsPerSecond":16.224277595483656}}},"goBefore":{"output":{"status":200,"sha256":"8b091406715c6232458f52f8c2516031ed2359d2586737cb3923559f96c8c841","entries":1000},"coldMs":62.96934049999618,"warm":{"1":{"p50Ms":64.99477400000251,"p95Ms":77.43742199999542,"cpuMs":1885,"peakProcessTreeRssBytes":325939200,"requestsPerSecond":15.166581719605437},"8":{"p50Ms":53.277233500000875,"p95Ms":77.01955949999683,"cpuMs":1200,"peakProcessTreeRssBytes":346836992,"requestsPerSecond":133.32074875303596}}},"goAfter":{"output":{"status":200,"sha256":"8b091406715c6232458f52f8c2516031ed2359d2586737cb3923559f96c8c841","entries":1000},"coldMs":70.37175750000097,"warm":{"1":{"p50Ms":65.4646554999963,"p95Ms":74.7055220000002,"cpuMs":1830,"peakProcessTreeRssBytes":324298752,"requestsPerSecond":15.251707595844026},"8":{"p50Ms":51.683250499998394,"p95Ms":73.53740349999862,"cpuMs":1270,"peakProcessTreeRssBytes":345358336,"requestsPerSecond":137.05539391600362}}}},{"name":"file counts","ts":{"output":{"status":200,"sha256":"14157927c66f50f4a524e003f0dd849218f678cffc266a149d37b2afc6c64386","entries":45},"coldMs":40.370750499998394,"warm":{"1":{"p50Ms":27.995887500001118,"p95Ms":33.99419699999635,"cpuMs":400,"peakProcessTreeRssBytes":356231168,"requestsPerSecond":34.508702948642295},"8":{"p50Ms":67.79125949999798,"p95Ms":81.45753349999723,"cpuMs":375,"peakProcessTreeRssBytes":357986304,"requestsPerSecond":112.01351082801071}}},"goBefore":{"output":{"status":200,"sha256":"14157927c66f50f4a524e003f0dd849218f678cffc266a149d37b2afc6c64386","entries":45},"coldMs":69.7607330000028,"warm":{"1":{"p50Ms":69.8233264999908,"p95Ms":93.21686600000248,"cpuMs":1900,"peakProcessTreeRssBytes":363751424,"requestsPerSecond":13.910285428547263},"8":{"p50Ms":78.61524899999495,"p95Ms":90.27311950000148,"cpuMs":1480,"peakProcessTreeRssBytes":365950976,"requestsPerSecond":96.82411463773647}}},"goAfter":{"output":{"status":200,"sha256":"14157927c66f50f4a524e003f0dd849218f678cffc266a149d37b2afc6c64386","entries":45},"coldMs":23.164501500003098,"warm":{"1":{"p50Ms":19.61992250000185,"p95Ms":23.22367249999661,"cpuMs":195,"peakProcessTreeRssBytes":347303936,"requestsPerSecond":49.3294084869274},"8":{"p50Ms":21.67325549999805,"p95Ms":27.604927500000485,"cpuMs":115,"peakProcessTreeRssBytes":347648000,"requestsPerSecond":337.5978312959177}}}},{"name":"gulpfile.js","ts":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":63.921571500002756,"warm":{"1":{"p50Ms":22.579349500003445,"p95Ms":29.557088999998086,"cpuMs":875,"peakProcessTreeRssBytes":358584320,"requestsPerSecond":42.83885056460038},"8":{"p50Ms":113.05269499999667,"p95Ms":130.63679400000183,"cpuMs":580,"peakProcessTreeRssBytes":361082880,"requestsPerSecond":67.84627017810665}}},"goBefore":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":61.77973450000354,"warm":{"1":{"p50Ms":17.54745600000024,"p95Ms":20.274646999998367,"cpuMs":360,"peakProcessTreeRssBytes":366757888,"requestsPerSecond":55.82094005020072},"8":{"p50Ms":68.20507649999126,"p95Ms":81.87241249999352,"cpuMs":355,"peakProcessTreeRssBytes":367341568,"requestsPerSecond":107.10527593451862}}},"goAfter":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":49.17443799999819,"warm":{"1":{"p50Ms":17.883655499997985,"p95Ms":20.807584999995015,"cpuMs":410,"peakProcessTreeRssBytes":349437952,"requestsPerSecond":54.43237661452041},"8":{"p50Ms":64.18658750000031,"p95Ms":74.10895049999817,"cpuMs":325,"peakProcessTreeRssBytes":351086592,"requestsPerSecond":114.60864145639766}}}},{"name":"src/config.ts","ts":{"output":{"status":200,"sha256":"dadc35430eb9fa79ccf887b613704619199cbd111af8dddfc30e5c6ca3f5d003"},"coldMs":24.486336999998457,"warm":{"1":{"p50Ms":25.283140000001367,"p95Ms":35.57223400000112,"cpuMs":755,"peakProcessTreeRssBytes":363204608,"requestsPerSecond":38.555305692890094},"8":{"p50Ms":109.77933650000159,"p95Ms":130.4405555000012,"cpuMs":540,"peakProcessTreeRssBytes":364107776,"requestsPerSecond":70.66274767509225}}},"goBefore":{"output":{"status":200,"sha256":"dadc35430eb9fa79ccf887b613704619199cbd111af8dddfc30e5c6ca3f5d003"},"coldMs":58.48024899999291,"warm":{"1":{"p50Ms":18.06759750000856,"p95Ms":20.92086200000267,"cpuMs":380,"peakProcessTreeRssBytes":367613952,"requestsPerSecond":55.03073104274837},"8":{"p50Ms":60.91620750000584,"p95Ms":67.94174549999661,"cpuMs":300,"peakProcessTreeRssBytes":367751168,"requestsPerSecond":122.07709644199466}}},"goAfter":{"output":{"status":200,"sha256":"dadc35430eb9fa79ccf887b613704619199cbd111af8dddfc30e5c6ca3f5d003"},"coldMs":43.04393799999889,"warm":{"1":{"p50Ms":20.031920999997965,"p95Ms":22.66816149999795,"cpuMs":425,"peakProcessTreeRssBytes":353951744,"requestsPerSecond":49.34116525697704},"8":{"p50Ms":68.00779099999636,"p95Ms":76.57763199999681,"cpuMs":375,"peakProcessTreeRssBytes":356358144,"requestsPerSecond":108.7089747766081}}}},{"name":"website gulpfile.js","ts":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":22.215049000002182,"warm":{"1":{"p50Ms":18.157132500002263,"p95Ms":24.566038000000844,"cpuMs":535,"peakProcessTreeRssBytes":365471744,"requestsPerSecond":53.051749662292295},"8":{"p50Ms":99.67454250000446,"p95Ms":150.90095299999484,"cpuMs":845,"peakProcessTreeRssBytes":369364992,"requestsPerSecond":72.50484807593446}}},"goBefore":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":77.46532099999968,"warm":{"1":{"p50Ms":66.96795449998899,"p95Ms":82.43080350001401,"cpuMs":1670,"peakProcessTreeRssBytes":372340736,"requestsPerSecond":14.836257025333925},"8":{"p50Ms":104.15019399999437,"p95Ms":144.24375450000298,"cpuMs":2345,"peakProcessTreeRssBytes":403597312,"requestsPerSecond":68.09919709456383}}},"goAfter":{"output":{"status":200,"sha256":"582a19c5d0d13b0526acfa491de26b4ad60f75c7fa13fed1054d7f66d22385fc"},"coldMs":27.725894499999413,"warm":{"1":{"p50Ms":16.548908500000834,"p95Ms":18.955033500002173,"cpuMs":330,"peakProcessTreeRssBytes":356358144,"requestsPerSecond":59.63569729453375},"8":{"p50Ms":51.93328649999967,"p95Ms":58.2488185000002,"cpuMs":300,"peakProcessTreeRssBytes":356870144,"requestsPerSecond":143.37761911631128}}}}];function draw(){const mode=document.getElementById('mode').value;document.getElementById('rows').replaceChildren();document.getElementById('other').replaceChildren();for(const row of rows){const tr=document.createElement('tr');const name=document.createElement('td');name.textContent=row.name==='website gulpfile.js'?'/w/ file':row.name;tr.append(name);for(const key of ['ts','goBefore','goAfter']){const td=document.createElement('td');td.textContent=(mode==='cold'?row[key].coldMs:row[key].warm[mode].p50Ms).toFixed(1)+' ms';if(key==='goAfter')td.className='after';tr.append(td)}document.getElementById(['file counts','website gulpfile.js'].includes(row.name)?'rows':'other').append(tr)}document.getElementById('note').textContent=mode==='cold'?'First requests can share dependencies warmed by earlier endpoints; filesystem caches were not cleared.':'Warm measurements use 32 requests per endpoint and concurrency level in each round.';}document.getElementById('mode').onchange=draw;draw();
|
||
</script></body></html> |