diff --git a/docs/performance/browser-qa.json b/docs/performance/browser-qa.json new file mode 100644 index 00000000..de969ce5 --- /dev/null +++ b/docs/performance/browser-qa.json @@ -0,0 +1,19 @@ +{ + "desktop": [ + 1440, + 1000 + ], + "mobile": [ + 390, + 844 + ], + "figures": 11, + "localLinks": 46, + "filteredCsvRows": 16, + "traceUpload": "passed", + "horizontalOverflow": false, + "pageErrors": [], + "externalRequests": [], + "browserVersion": "146.0.7680.164", + "nodeVersion": "v25.2.1" +} diff --git a/docs/performance/data.json b/docs/performance/data.json new file mode 100644 index 00000000..a8724190 --- /dev/null +++ b/docs/performance/data.json @@ -0,0 +1 @@ +{"record_count":1349,"summaries":[{"suite":"startup","scenario":"default","variant":"baseline","metrics":{"parent_ready_ms":{"n":15,"median":409.01268899960996,"mean":407.00350240009965,"min":385.28753600076016,"max":443.7695269998585,"p95":434.50633950005795,"q25":391.4790610001546,"q75":415.2778840002611,"sd":17.477079410631376,"median_ci95":[393.3660250004323,413.6363240004357]},"cli_first_refresh_ms":{"n":15,"median":346.83,"mean":348.31333333333333,"min":325.45,"max":391.1,"p95":381.538,"q25":335.53,"q75":355.65,"sd":18.4284596157553,"median_ci95":[333.32,355.1]},"process_cpu_ms":{"n":15,"median":547.391,"mean":540.7048,"min":504.818,"max":591.362,"p95":571.9817999999999,"q25":521.0129999999999,"q75":553.8184999999999,"sd":23.61433000229188,"median_ci95":[521.5849999999999,549.5409999999999]},"pty_bytes":{"n":15,"median":75411,"mean":75411,"min":75411,"max":75411,"p95":75411.0,"q25":75411.0,"q75":75411.0,"sd":0.0,"median_ci95":[75411.0,75411.0]}}},{"suite":"startup","scenario":"default","variant":"candidate","metrics":{"parent_ready_ms":{"n":15,"median":402.3940360002598,"mean":409.857636933278,"min":386.1466969992762,"max":491.4593840003363,"p95":459.06198889979345,"q25":392.931352499545,"q75":414.727522499561,"sd":27.324853896901885,"median_ci95":[390.97375799974543,415.2825129995108]},"cli_first_refresh_ms":{"n":15,"median":343.72,"mean":352.55133333333333,"min":335.38,"max":434.86,"p95":396.35999999999996,"q25":337.72,"q75":351.71500000000003,"sd":25.88234115781499,"median_ci95":[337.68,352.87]},"process_cpu_ms":{"n":15,"median":537.525,"mean":546.3956,"min":517.786,"max":639.3389999999999,"p95":591.1818,"q25":531.2895,"q75":554.33,"sd":30.180080059535968,"median_ci95":[528.271,562.2320000000001]},"pty_bytes":{"n":15,"median":75411,"mean":75411,"min":75411,"max":75411,"p95":75411.0,"q25":75411.0,"q75":75411.0,"sd":0.0,"median_ci95":[75411.0,75411.0]}}},{"suite":"startup","scenario":"disabled","variant":"baseline","metrics":{"parent_ready_ms":{"n":15,"median":410.6932400000005,"mean":409.89043246675766,"min":372.81932399946527,"max":444.01222499982396,"p95":434.63712849998046,"q25":397.8023300001041,"q75":422.64116950036623,"sd":17.928716819356364,"median_ci95":[395.12102200023946,422.2783880004499]},"cli_first_refresh_ms":{"n":15,"median":349.59,"mean":351.166,"min":325.96,"max":385.92,"p95":372.263,"q25":343.0,"q75":358.91,"sd":15.17482868813635,"median_ci95":[343.18,361.35]},"process_cpu_ms":{"n":15,"median":541.8,"mean":542.9554666666667,"min":495.229,"max":570.6949999999999,"p95":565.4576,"q25":534.7909999999999,"q75":560.3115,"sd":18.970780313293346,"median_ci95":[533.449,560.134]},"pty_bytes":{"n":15,"median":75411,"mean":75411,"min":75411,"max":75411,"p95":75411.0,"q25":75411.0,"q75":75411.0,"sd":0.0,"median_ci95":[75411.0,75411.0]}}},{"suite":"startup","scenario":"disabled","variant":"candidate","metrics":{"parent_ready_ms":{"n":15,"median":393.0072849998396,"mean":398.2244138666526,"min":373.4640889997536,"max":439.6697209995182,"p95":422.8131329999087,"q25":389.3125559998225,"q75":405.8499294997091,"sd":16.882679888844326,"median_ci95":[388.95810499980144,406.8342959999427]},"cli_first_refresh_ms":{"n":15,"median":338.98,"mean":338.7766666666667,"min":323.97,"max":375.86,"p95":360.11,"q25":326.95000000000005,"q75":343.09000000000003,"sd":13.81868851884839,"median_ci95":[326.55,343.05]},"process_cpu_ms":{"n":15,"median":454.435,"mean":457.1139333333333,"min":426.971,"max":526.1129999999999,"p95":490.86799999999994,"q25":444.834,"q75":460.68399999999997,"sd":22.99558130370349,"median_ci95":[444.392,465.052]},"pty_bytes":{"n":15,"median":75411,"mean":75411,"min":75411,"max":75411,"p95":75411.0,"q25":75411.0,"q75":75411.0,"sd":0.0,"median_ci95":[75411.0,75411.0]}}},{"suite":"startup","scenario":"no-pyc","variant":"candidate","metrics":{"parent_ready_ms":{"n":7,"median":1193.5084649994678,"mean":1221.8753872857633,"min":1149.404499999946,"max":1385.2823350007384,"p95":1354.196578900519,"q25":1170.3477635001036,"q75":1242.1184419999918,"sd":83.72106994118974,"median_ci95":[1165.9069940005793,1281.663148000007]},"cli_first_refresh_ms":{"n":7,"median":941.33,"mean":955.6157142857143,"min":896.8,"max":1093.99,"p95":1064.845,"q25":908.75,"q75":969.845,"sd":69.8220506853298,"median_ci95":[899.14,996.84]},"process_cpu_ms":{"n":7,"median":1253.654,"mean":1268.509142857143,"min":1226.299,"max":1332.809,"p95":1332.6467,"q25":1237.8255000000001,"q75":1295.5755,"sd":45.1649999572994,"median_ci95":[1232.276,1332.268]},"pty_bytes":{"n":7,"median":75411,"mean":75411,"min":75411,"max":75411,"p95":75411.0,"q25":75411.0,"q75":75411.0,"sd":0.0,"median_ci95":[75411.0,75411.0]}}},{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"baseline","metrics":{"wall_ms":{"n":9,"median":98.39056700002402,"mean":100.13725000003939,"min":89.32914500019251,"max":121.30868099939107,"p95":115.96338979961729,"q25":94.44102199995541,"q75":103.5736559997531,"sd":9.978299269193126,"median_ci95":[89.93394400022225,107.94545299995661]},"cpu_ms":{"n":9,"median":96.66114600000003,"mean":95.71332633333333,"min":88.51610500000001,"max":105.54071499999995,"p95":103.15733259999998,"q25":92.071941,"q75":97.70218899999999,"sd":5.377078231709356,"median_ci95":[88.82693499999999,99.58225900000001]},"terminal_bytes":{"n":9,"median":18297,"mean":20717,"min":18297,"max":23742,"p95":23742.0,"q25":18297.0,"q75":23742.0,"sd":2869.7669766028043,"median_ci95":[18297.0,23742.0]},"frames":{"n":9,"median":1,"mean":1.4444444444444444,"min":1,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.5270462766947299,"median_ci95":[1.0,2.0]},"max_loop_delay_ms":{"n":9,"median":96.43670500019653,"mean":97.01131744442036,"min":86.81190799972683,"max":119.61638799959474,"p95":112.87331919967983,"q25":91.87240700077382,"q75":99.57713199957652,"sd":10.001238049537672,"median_ci95":[87.13355700012471,102.75871599980746]},"p95_loop_delay_ms":{"n":9,"median":78.6552593500073,"mean":82.03892438886919,"min":73.84754959982271,"max":101.83128909963666,"p95":96.0957446196971,"q25":77.34486319997812,"q75":84.77286429967532,"sd":8.705861369401664,"median_ci95":[74.15898270007344,87.49242789978776]},"loop_delays_over_16_7_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":9,"median":98.76908656400133,"mean":95.95499040740359,"min":87.0017826675815,"max":99.49893369863119,"p95":99.41950493588764,"q25":93.32599594652761,"q75":99.0898379244638,"sd":4.681384243660519,"median_ci95":[90.05905695725693,99.30036179177232]},"maxrss_kib":{"n":9,"median":116212,"mean":115375.11111111111,"min":110136,"max":117492,"p95":117455.2,"q25":116088.0,"q75":117228.0,"sd":2711.669432491931,"median_ci95":[111304.0,117400.0]}}},{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"baseline","metrics":{"wall_ms":{"n":9,"median":1841.234147999785,"mean":1843.8828293331728,"min":1788.548288000129,"max":1912.0571639996342,"p95":1905.099247599719,"q25":1819.7064839996528,"q75":1867.8151169997363,"sd":41.34827607218742,"median_ci95":[1800.677399000051,1894.6623729998464]},"cpu_ms":{"n":9,"median":1828.097953,"mean":1824.69434,"min":1770.50345,"max":1877.8790869999998,"p95":1870.4523262,"q25":1812.4937199999997,"q75":1832.920511,"sd":32.2080775234101,"median_ci95":[1792.9216479999998,1859.3121850000002]},"terminal_bytes":{"n":9,"median":20541,"mean":19543.666666666668,"min":18297,"max":20541,"p95":20541.0,"q25":18297.0,"q75":20541.0,"sd":1182.6918449029738,"median_ci95":[18297.0,20541.0]},"frames":{"n":9,"median":1,"mean":1.1111111111111112,"min":1,"max":2,"p95":1.5999999999999996,"q25":1.0,"q75":1.0,"sd":0.3333333333333333,"median_ci95":[1.0,1.0]},"max_loop_delay_ms":{"n":9,"median":1839.057934000375,"mean":1840.6710811111002,"min":1786.3314419993185,"max":1908.885553,"p95":1901.5082861998235,"q25":1816.5222509998057,"q75":1862.5262670003576,"sd":40.8313990672431,"median_ci95":[1797.3980509997273,1890.4423859995586]},"p95_loop_delay_ms":{"n":9,"median":1563.3139259504053,"mean":1564.692937011106,"min":1518.5258083494948,"max":1622.6434241499821,"p95":1616.392290149842,"q25":1544.14975814986,"q75":1583.2834588502185,"sd":34.70084588837248,"median_ci95":[1527.93305959969,1607.0155891496318]},"loop_delays_over_16_7_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":9,"median":99.33234034150807,"mean":98.96987299557466,"min":97.87360303285617,"max":99.60363036219997,"p95":99.5898930316591,"q25":98.21249711341575,"q75":99.56708112607332,"sd":0.7025862813112337,"median_ci95":[98.1342223024213,99.56928703584782]},"maxrss_kib":{"n":9,"median":120184,"mean":119144,"min":114104,"max":120984,"p95":120969.6,"q25":120124.0,"q75":120684.0,"sd":2696.057862880543,"median_ci95":[114760.0,120948.0]}}},{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"candidate","metrics":{"wall_ms":{"n":9,"median":21.78511999954935,"mean":25.40224377773686,"min":20.730324999931327,"max":34.3464480001785,"p95":34.12786400022014,"q25":21.02732000003016,"q75":32.16602600059559,"sd":6.0732883078160365,"median_ci95":[20.817865999561036,33.79998800028261]},"cpu_ms":{"n":9,"median":21.576221000000007,"mean":25.137946222222226,"min":20.667350000000027,"max":33.89264399999997,"p95":33.629255999999984,"q25":20.972880999999997,"q75":31.893475000000006,"sd":5.937976603777574,"median_ci95":[20.730142999999977,33.234174]},"terminal_bytes":{"n":9,"median":18297,"mean":18297,"min":18297,"max":18297,"p95":18297.0,"q25":18297.0,"q75":18297.0,"sd":0.0,"median_ci95":[18297.0,18297.0]},"frames":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"max_loop_delay_ms":{"n":9,"median":19.67578199957643,"mean":22.697673889027403,"min":16.799951000502915,"max":31.200335000103223,"p95":30.75463140005013,"q25":18.77466899997671,"q75":30.007203000532172,"sd":5.883299224696978,"median_ci95":[18.558740000225953,30.08607599997049]},"p95_loop_delay_ms":{"n":9,"median":16.818726299534312,"mean":19.230900872276422,"min":14.373261350347088,"max":26.605466000019067,"p95":26.235913440141292,"q25":16.059635849951512,"q75":24.098138999870567,"sd":4.781801756677305,"median_ci95":[15.891197150149303,25.68158460032463]},"loop_delays_over_16_7_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":9,"median":99.15267431360486,"mean":99.0175404788017,"min":97.57886116964123,"max":99.74110347856939,"p95":99.7373545075136,"q25":98.67392060480937,"q75":99.6962179805116,"sd":0.7589610126924059,"median_ci95":[98.32599348769628,99.73173105092991]},"maxrss_kib":{"n":9,"median":116224,"mean":115632,"min":110340,"max":116460,"p95":116455.2,"q25":116180.0,"q75":116368.0,"sd":1988.4586995962477,"median_ci95":[116104.0,116448.0]}}},{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"candidate","metrics":{"wall_ms":{"n":9,"median":34.62547699928109,"mean":42.70164388880302,"min":32.61409500009904,"max":55.958031000045594,"p95":55.66858419988421,"q25":33.993218000432535,"q75":53.579862999868055,"sd":10.756065096740532,"median_ci95":[32.818461000715615,55.23441399964213]},"cpu_ms":{"n":9,"median":34.493291000000035,"mean":41.789188444444434,"min":32.522361,"max":54.314408999999955,"p95":53.876970999999976,"q25":33.76091399999998,"q75":51.274142999999995,"sd":9.972151662039487,"median_ci95":[32.67219399999999,53.220814000000004]},"terminal_bytes":{"n":9,"median":20541,"mean":20541,"min":20541,"max":20541,"p95":20541.0,"q25":20541.0,"q75":20541.0,"sd":0.0,"median_ci95":[20541.0,20541.0]},"frames":{"n":9,"median":1,"mean":1.1111111111111112,"min":1,"max":2,"p95":1.5999999999999996,"q25":1.0,"q75":1.0,"sd":0.3333333333333333,"median_ci95":[1.0,1.0]},"max_loop_delay_ms":{"n":9,"median":32.47997200025566,"mean":40.32822099978754,"min":30.335186999873258,"max":54.0673449996757,"p95":53.585921799931384,"q25":31.535833999550963,"q75":51.30804599968542,"sd":10.741744055994218,"median_ci95":[30.86240699951304,52.863787000314915]},"p95_loop_delay_ms":{"n":9,"median":27.70951285016962,"mean":34.41750326648615,"min":25.868834699867865,"max":46.054649949764986,"p95":45.677554809972186,"q25":26.958856249548255,"q75":44.01361979982538,"sd":9.183439373147916,"median_ci95":[26.323016249552882,45.111912100282986]},"loop_delays_over_16_7_ms":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0.3333333333333333,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":9,"median":99.32988070561333,"mean":98.17554550207359,"min":91.62964115009375,"max":99.71872897255383,"p95":99.67853363965747,"q25":98.22694211845798,"q75":99.55431486957163,"sd":2.5628284818546674,"median_ci95":[97.67885618238749,99.55431486957163]},"maxrss_kib":{"n":9,"median":121940,"mean":121392,"min":116100,"max":122348,"p95":122343.2,"q25":121864.0,"q75":122128.0,"sd":1994.1795305337982,"median_ci95":[121828.0,122336.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":39.08322000006592,"mean":44.30107999960455,"min":37.57163599948399,"max":66.39820499913185,"p95":61.22942059919296,"q25":37.89805599990359,"q75":40.55428299943742,"sd":12.407977442672578,"median_ci95":[37.57163599948399,66.39820499913185]},"cpu_ms":{"n":5,"median":21.30125500000002,"mean":24.843648000000005,"min":20.377727999999983,"max":39.178619000000026,"p95":35.88090520000002,"q25":20.670587999999988,"q75":22.690050000000017,"sd":8.062828245921136,"median_ci95":[20.377727999999983,39.178619000000026]},"terminal_bytes":{"n":5,"median":46785,"mean":46152.8,"min":43624,"max":46785,"p95":46785.0,"q25":46785.0,"q75":46785.0,"sd":1413.642175375367,"median_ci95":[43624.0,46785.0]},"frames":{"n":5,"median":4,"mean":3.8,"min":3,"max":4,"p95":4.0,"q25":4.0,"q75":4.0,"sd":0.4472135954999579,"median_ci95":[3.0,4.0]},"first_result_refresh_ms":{"n":5,"median":9.337854000477819,"mean":10.645250999914424,"min":8.768450999923516,"max":16.37215800019476,"p95":15.082202200028405,"q25":8.825412999613036,"q75":9.92237899936299,"sd":3.235099813780241,"median_ci95":[8.768450999923516,16.37215800019476]},"max_loop_delay_ms":{"n":5,"median":8.421208000181649,"mean":10.98157060016092,"min":8.09487100024853,"max":19.573923000389186,"p95":17.754051200354297,"q25":8.343286999770497,"q75":10.47456400021474,"sd":4.8973106661129195,"median_ci95":[8.09487100024853,19.573923000389186]},"p95_loop_delay_ms":{"n":5,"median":8.32066665008824,"mean":10.031702960122853,"min":7.888434699925709,"max":16.17706335025104,"p95":14.87236724027752,"q25":8.118767299965837,"q75":9.653582800383443,"sd":3.503176990571684,"median_ci95":[7.888434699925709,16.17706335025104]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":54.54260767373549,"mean":55.67323409380252,"min":52.525290609367985,"max":59.00553938244608,"p95":58.815578182183515,"q25":54.236999422329795,"q75":58.05573338113325,"sd":2.7400363001856873,"median_ci95":[52.525290609367985,59.00553938244608]},"maxrss_kib":{"n":5,"median":123132,"mean":123145.6,"min":123064,"max":123220,"p95":123220.0,"q25":123092.0,"q75":123220.0,"sd":72.08883408684038,"median_ci95":[123064.0,123220.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":79.21828500002448,"mean":81.3605141996959,"min":59.867461000067124,"max":104.97556699920096,"p95":100.9426597993297,"q25":77.93022699934227,"q75":84.81103099984466,"sd":16.18551927630396,"median_ci95":[59.867461000067124,104.97556699920096]},"cpu_ms":{"n":5,"median":55.154099999999985,"mean":50.89795819999999,"min":36.98505000000002,"max":59.25112499999996,"p95":58.89110239999996,"q25":45.64850400000003,"q75":57.45101199999997,"sd":9.380277670404361,"median_ci95":[36.98505000000002,59.25112499999996]},"terminal_bytes":{"n":5,"median":58785,"mean":57326.2,"min":55138,"max":58785,"p95":58785.0,"q25":55138.0,"q75":58785.0,"sd":1997.5441672213408,"median_ci95":[55138.0,58785.0]},"frames":{"n":5,"median":6,"mean":5.6,"min":5,"max":6,"p95":6.0,"q25":5.0,"q75":6.0,"sd":0.5477225575051661,"median_ci95":[5.0,6.0]},"first_result_refresh_ms":{"n":5,"median":60.77889199968922,"mean":60.12709000005998,"min":43.923090000134835,"max":68.38561800032039,"p95":68.35638240027038,"q25":59.30841000008513,"q75":68.23944000007032,"sd":9.970935337775572,"median_ci95":[43.923090000134835,68.38561800032039]},"max_loop_delay_ms":{"n":5,"median":21.735671000096772,"mean":20.75126959982299,"min":16.9309730000532,"max":22.567492999878596,"p95":22.53951419981604,"q25":20.094611999520566,"q75":22.427598999565816,"sd":2.3507264370009238,"median_ci95":[16.9309730000532,22.567492999878596]},"p95_loop_delay_ms":{"n":5,"median":16.054475999790156,"mean":17.109853770043625,"min":15.01186280012916,"max":20.95112015001177,"p95":20.42382999999972,"q25":15.217140500335516,"q75":18.314669399951523,"sd":2.5151868704462563,"median_ci95":[15.01186280012916,20.95112015001177]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.2,"min":1,"max":2,"p95":1.7999999999999998,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":73.72108899475535,"mean":65.00578583403544,"min":35.23205547466254,"max":76.24927337397664,"p95":75.95837041089322,"q25":65.03175276822304,"q75":74.79475855855961,"sd":17.20953370983552,"median_ci95":[35.23205547466254,76.24927337397664]},"maxrss_kib":{"n":5,"median":134736,"mean":134758.4,"min":134588,"max":134880,"p95":134877.6,"q25":134720.0,"q75":134868.0,"sd":120.21979870221044,"median_ci95":[134588.0,134880.0]}}},{"suite":"render","scenario":"scroll_30","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":518.3861589994194,"mean":527.8475385997808,"min":508.9491610006007,"max":554.937121999501,"p95":551.8025895995379,"q25":517.7007909996973,"q75":539.2644599996856,"sd":18.800362295080408,"median_ci95":[508.9491610006007,554.937121999501]},"cpu_ms":{"n":5,"median":367.550933,"mean":364.41341179999995,"min":337.38985099999996,"max":378.51585099999994,"p95":378.11053819999995,"q25":362.12113700000003,"q75":376.48928699999993,"sd":16.508156730735653,"median_ci95":[337.38985099999996,378.51585099999994]},"terminal_bytes":{"n":5,"median":911474,"mean":910478,"min":905352,"max":912616,"p95":912387.6,"q25":911474.0,"q75":911474.0,"sd":2907.875857047546,"median_ci95":[905352.0,912616.0]},"frames":{"n":5,"median":60,"mean":59.8,"min":59,"max":60,"p95":60.0,"q25":60.0,"q75":60.0,"sd":0.4472135954999579,"median_ci95":[59.0,60.0]},"max_loop_delay_ms":{"n":5,"median":13.938854999760222,"mean":15.574142000077698,"min":11.341952000402669,"max":23.326460999778647,"p95":21.862732999870786,"q25":13.25562100020761,"q75":16.007821000239346,"sd":4.643480987952378,"median_ci95":[11.341952000402669,23.326460999778647]},"p95_loop_delay_ms":{"n":5,"median":12.726043549600943,"mean":12.712017719977663,"min":10.33218940030565,"max":14.520059850083266,"p95":14.476719950071123,"q25":11.678435449875904,"q75":14.303360350022555,"sd":1.7701313210121759,"median_ci95":[10.33218940030565,14.520059850083266]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":69.81533457632632,"mean":69.03356962904174,"min":66.29146422732815,"max":70.99678798833725,"p95":70.76852628948625,"q25":68.20878185913473,"q75":69.85547949408225,"sd":1.8262211999661857,"median_ci95":[66.29146422732815,70.99678798833725]},"maxrss_kib":{"n":5,"median":135904,"mean":135961.6,"min":135868,"max":136148,"p95":136121.6,"q25":135872.0,"q75":136016.0,"sd":120.21979870221044,"median_ci95":[135868.0,136148.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":14.97345600000699,"mean":17.388581199702458,"min":13.86658899991744,"max":23.28488499915693,"p95":22.789481599284045,"q25":14.010107999638421,"q75":20.807867999792506,"sd":4.362031082701979,"median_ci95":[13.86658899991744,23.28488499915693]},"cpu_ms":{"n":5,"median":14.703683000000023,"mean":16.416949999999986,"min":13.805616000000075,"max":23.041397999999937,"p95":21.749737799999934,"q25":13.950955999999959,"q75":16.583096999999935,"sd":3.8647895030387125,"median_ci95":[13.805616000000075,23.041397999999937]},"terminal_bytes":{"n":5,"median":28981,"mean":28981,"min":28981,"max":28981,"p95":28981.0,"q25":28981.0,"q75":28981.0,"sd":0.0,"median_ci95":[28981.0,28981.0]},"frames":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"max_loop_delay_ms":{"n":5,"median":12.70924099946569,"mean":14.866440800069538,"min":11.647811000439104,"max":18.87435899981938,"p95":18.795165799856477,"q25":12.622400000618653,"q75":18.47839300000487,"sd":3.505653108441357,"median_ci95":[11.647811000439104,18.87435899981938]},"p95_loop_delay_ms":{"n":5,"median":10.883473399571807,"mean":12.76778804007335,"min":9.99172610033383,"max":16.152421349825083,"p95":16.122624979880122,"q25":10.80787985053575,"q75":16.003439500100278,"sd":3.0423504351631947,"median_ci95":[9.99172610033383,16.152421349825083]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.4,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":98.95431306976259,"mean":95.19739966975793,"min":79.69628123441238,"max":99.57779055207861,"p95":99.57429012229693,"q25":98.19832508936587,"q75":99.56028840317019,"sd":8.683709558677199,"median_ci95":[79.69628123441238,99.57779055207861]},"maxrss_kib":{"n":5,"median":140624,"mean":140646.4,"min":140604,"max":140756,"p95":140732.8,"q25":140608.0,"q75":140640.0,"sd":62.90310008258734,"median_ci95":[140604.0,140756.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":73.43346099969494,"mean":70.1511153998581,"min":58.10324899994157,"max":79.72601900019072,"p95":79.60932000005414,"q25":60.350323999955435,"q75":79.14252399950783,"sd":10.301754669144108,"median_ci95":[58.10324899994157,79.72601900019072]},"cpu_ms":{"n":5,"median":53.12022000000005,"mean":55.35318140000001,"min":41.80543399999992,"max":78.26290200000008,"p95":74.25321200000006,"q25":45.36289900000001,"q75":58.21445199999997,"sd":14.329824545997942,"median_ci95":[41.80543399999992,78.26290200000008]},"terminal_bytes":{"n":5,"median":49971,"mean":51723.6,"min":49971,"max":55813,"p95":55228.8,"q25":49971.0,"q75":52892.0,"sd":2612.621824910754,"median_ci95":[49971.0,55813.0]},"frames":{"n":5,"median":3,"mean":3.6,"min":3,"max":5,"p95":4.8,"q25":3.0,"q75":4.0,"sd":0.8944271909999159,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":23.56677700037835,"mean":23.777427800196165,"min":17.2743320000518,"max":34.18911199980357,"p95":32.49630719994457,"q25":18.13183000023855,"q75":25.72508800050855,"sd":6.826491620745623,"median_ci95":[17.2743320000518,34.18911199980357]},"p95_loop_delay_ms":{"n":5,"median":22.358707850225976,"mean":20.891344220190145,"min":12.99521920020197,"max":30.53744199984976,"p95":28.96288259994435,"q25":15.900707050350317,"q75":22.664645000322707,"sd":6.811758285248293,"median_ci95":[12.99521920020197,30.53744199984976]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.4,"min":1,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.5477225575051661,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":75.16595768406067,"mean":78.33516510829206,"min":67.11969408548354,"max":98.16481868963365,"p95":94.38687559420171,"q25":71.95025186980845,"q75":79.27510321247395,"sd":11.944626698017087,"median_ci95":[67.11969408548354,98.16481868963365]},"maxrss_kib":{"n":5,"median":142400,"mean":142464,"min":142288,"max":142804,"p95":142729.6,"q25":142396.0,"q75":142432.0,"sd":197.6866206904251,"median_ci95":[142288.0,142804.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":69.40105200010294,"mean":72.21432820024347,"min":63.99930499992479,"max":86.37022800030536,"p95":83.97818920038844,"q25":66.8910220001635,"q75":74.41003400072077,"sd":8.78847741607588,"median_ci95":[63.99930499992479,86.37022800030536]},"cpu_ms":{"n":5,"median":58.989067000000176,"mean":61.87416480000003,"min":53.56708600000004,"max":77.48775999999991,"p95":74.92462619999993,"q25":54.654819999999994,"q75":64.67209100000004,"sd":9.760417933372098,"median_ci95":[53.56708600000004,77.48775999999991]},"terminal_bytes":{"n":5,"median":54303,"mean":54303,"min":54303,"max":54303,"p95":54303.0,"q25":54303.0,"q75":54303.0,"sd":0.0,"median_ci95":[54303.0,54303.0]},"frames":{"n":5,"median":5,"mean":5,"min":5,"max":5,"p95":5.0,"q25":5.0,"q75":5.0,"sd":0.0,"median_ci95":[5.0,5.0]},"max_loop_delay_ms":{"n":5,"median":28.287064999967697,"mean":32.266805799845315,"min":26.916036999973585,"max":47.918231999683485,"p95":44.35955059972912,"q25":28.087869999690156,"q75":30.124824999911652,"sd":8.824508369336714,"median_ci95":[26.916036999973585,47.918231999683485]},"p95_loop_delay_ms":{"n":5,"median":23.68914129994663,"mean":26.320561659940708,"min":21.435627100090635,"max":37.14105569963064,"p95":34.87804789969229,"q25":23.510967500096726,"q75":25.826016699938908,"sd":6.245167013148387,"median_ci95":[21.435627100090635,37.14105569963064]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":85.39908363077414,"mean":85.42130685529652,"min":80.08112957202104,"max":89.71582198408224,"p95":89.15528396783527,"q25":84.99736718675776,"q75":86.9131319028474,"sd":3.513051177215826,"median_ci95":[80.08112957202104,89.71582198408224]},"maxrss_kib":{"n":5,"median":146236,"mean":146312.8,"min":145340,"max":147444,"p95":147222.4,"q25":146208.0,"q75":146336.0,"sd":748.8946521374017,"median_ci95":[145340.0,147444.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":154.40533400033019,"mean":154.76080200005526,"min":126.43521300014982,"max":175.9595260000424,"p95":175.00503060000483,"q25":145.81688799989934,"q75":171.1870489998546,"sd":20.010412521101514,"median_ci95":[126.43521300014982,175.9595260000424]},"cpu_ms":{"n":5,"median":140.5030919999999,"mean":138.54678119999994,"min":124.8442299999999,"max":148.82865999999996,"p95":147.42235499999998,"q25":136.760789,"q75":141.79713500000003,"sd":8.81842759447999,"median_ci95":[124.8442299999999,148.82865999999996]},"terminal_bytes":{"n":5,"median":77109,"mean":77109,"min":77109,"max":77109,"p95":77109.0,"q25":77109.0,"q75":77109.0,"sd":0.0,"median_ci95":[77109.0,77109.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":137.83452700045018,"mean":137.1988117998626,"min":122.80180499965354,"max":148.39117999963491,"p95":146.64712179965136,"q25":137.2956579998572,"q75":139.67088899971714,"sd":9.206894012223838,"median_ci95":[122.80180499965354,148.39117999963491]},"max_loop_delay_ms":{"n":5,"median":94.69983199971466,"mean":95.23557759996038,"min":87.7786450001804,"max":102.15371099922777,"p95":101.27536099946155,"q25":93.78373900028237,"q75":97.7619610003967,"sd":5.297260737433502,"median_ci95":[87.7786450001804,102.15371099922777]},"p95_loop_delay_ms":{"n":5,"median":66.25548220010381,"mean":64.28652519004565,"min":50.57587780021993,"max":77.88643229952862,"p95":76.73201193960261,"q25":54.60050315047733,"q75":72.11433049989859,"sd":11.531583541107034,"median_ci95":[50.57587780021993,77.88643229952862]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":1.8,"min":1,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":5,"median":93.7894031863404,"mean":90.32014286300948,"min":79.84966497350422,"max":98.74166147041012,"p95":98.27098703232959,"q25":82.83169540478524,"q75":96.38828928000746,"sd":8.448193539940394,"median_ci95":[79.84966497350422,98.74166147041012]},"maxrss_kib":{"n":5,"median":192136,"mean":191894.4,"min":191192,"max":192564,"p95":192528.0,"q25":191196.0,"q75":192384.0,"sd":657.1855141434571,"median_ci95":[191192.0,192564.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":146.8309430001682,"mean":143.45955420012615,"min":115.5274910006483,"max":166.5386180002315,"p95":163.37662640016788,"q25":137.6720589996694,"q75":150.72865999991336,"sd":18.77860885911026,"median_ci95":[115.5274910006483,166.5386180002315]},"cpu_ms":{"n":5,"median":122.3474149999999,"mean":122.02387059999995,"min":105.64026199999988,"max":139.07615499999991,"p95":138.63153459999995,"q25":106.202468,"q75":136.85305300000005,"sd":16.04313829865441,"median_ci95":[105.64026199999988,139.07615499999991]},"terminal_bytes":{"n":5,"median":76909,"mean":76909,"min":76909,"max":76909,"p95":76909.0,"q25":76909.0,"q75":76909.0,"sd":0.0,"median_ci95":[76909.0,76909.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":116.39644099977886,"mean":119.67058179998276,"min":99.83579399977316,"max":137.586021000061,"p95":137.10983520013542,"q25":109.32956099986768,"q75":135.20509200043307,"sd":16.381082726325747,"median_ci95":[99.83579399977316,137.586021000061]},"max_loop_delay_ms":{"n":5,"median":74.67661699967721,"mean":76.50996000003943,"min":62.7868020002279,"max":90.57669400055602,"p95":90.31294620046538,"q25":65.2517319996332,"q75":89.25795500010281,"sd":13.02707077317105,"median_ci95":[62.7868020002279,90.57669400055602]},"p95_loop_delay_ms":{"n":5,"median":48.547136399856726,"mean":51.782146160085155,"min":37.7428578003855,"max":68.57410610011351,"p95":66.16038858015595,"q25":47.54111199974432,"q75":56.50551850032571,"sd":11.509055580680979,"median_ci95":[37.7428578003855,68.57410610011351]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":5,"median":82.17496616899379,"mean":85.32949163559277,"min":77.14162828076468,"max":94.71856010612191,"p95":94.06318120543713,"q25":81.17063801938544,"q75":91.44166560269802,"sd":7.412851644040954,"median_ci95":[77.14162828076468,94.71856010612191]},"maxrss_kib":{"n":5,"median":204896,"mean":204904,"min":204688,"max":205236,"p95":205176.0,"q25":204764.0,"q75":204936.0,"sd":210.69409104196538,"median_ci95":[204688.0,205236.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":155.8691780001027,"mean":153.57511279980827,"min":125.34995499936485,"max":174.39746200034278,"p95":173.96770840023237,"q25":140.0102749994403,"q75":172.2486939997907,"sd":21.024984860962228,"median_ci95":[125.34995499936485,174.39746200034278]},"cpu_ms":{"n":5,"median":110.32852100000001,"mean":114.60560260000001,"min":95.53788699999987,"max":137.85383399999995,"p95":134.36269219999997,"q25":108.90964600000008,"q75":120.39812500000014,"sd":15.719006853067057,"median_ci95":[95.53788699999987,137.85383399999995]},"terminal_bytes":{"n":5,"median":74955,"mean":74955,"min":74955,"max":74955,"p95":74955.0,"q25":74955.0,"q75":74955.0,"sd":0.0,"median_ci95":[74955.0,74955.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":122.90835799922206,"mean":119.64091959962389,"min":94.20710499944107,"max":143.78817099986918,"p95":141.2058291998619,"q25":106.42450199975428,"q75":130.87646199983283,"sd":19.63132659933687,"median_ci95":[94.20710499944107,143.78817099986918]},"max_loop_delay_ms":{"n":5,"median":58.71233299978485,"mean":57.864220600022236,"min":35.5807030001597,"max":88.1424030004564,"p95":82.91577100037102,"q25":44.876420999680704,"q75":62.00924300002953,"sd":19.999418303385536,"median_ci95":[35.5807030001597,88.1424030004564]},"p95_loop_delay_ms":{"n":5,"median":37.439480199755025,"mean":39.24360471002726,"min":32.01862384991726,"max":50.67483990002979,"p95":49.05644332005973,"q25":33.50222260025475,"q75":42.5828570001795,"sd":7.586870666394279,"median_ci95":[32.01862384991726,50.67483990002979]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":3,"min":2,"max":4,"p95":3.8,"q25":3.0,"q75":3.0,"sd":0.7071067811865476,"median_ci95":[2.0,4.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":76.21692963550242,"mean":74.76666567896496,"min":69.872470874215,"max":79.0457799206556,"p95":78.99668454642487,"q25":69.89784491494979,"q75":78.80030304950193,"sd":4.591918800812213,"median_ci95":[69.872470874215,79.0457799206556]},"maxrss_kib":{"n":5,"median":226136,"mean":226071.2,"min":224384,"max":227056,"p95":227010.4,"q25":225952.0,"q75":226828.0,"sd":1049.7176763301645,"median_ci95":[224384.0,227056.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"bulk","metrics":{"wall_ms":{"n":5,"median":130.69659800021327,"mean":126.9462387999738,"min":91.3300080001136,"max":166.00104400004057,"p95":160.57627080008388,"q25":107.82636599924444,"q75":138.87717800025712,"sd":28.79138649775233,"median_ci95":[91.3300080001136,166.00104400004057]},"cpu_ms":{"n":5,"median":92.28066400000002,"mean":103.228134,"min":79.71668900000006,"max":132.98276799999996,"p95":132.31148639999995,"q25":81.53418900000008,"q75":129.62635999999983,"sd":26.10300258338571,"median_ci95":[79.71668900000006,132.98276799999996]},"terminal_bytes":{"n":5,"median":75185,"mean":75018.4,"min":74352,"max":75185,"p95":75185.0,"q25":75185.0,"q75":75185.0,"sd":372.52892505146497,"median_ci95":[74352.0,75185.0]},"frames":{"n":5,"median":6,"mean":5.8,"min":5,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.4472135954999579,"median_ci95":[5.0,6.0]},"first_result_refresh_ms":{"n":5,"median":87.77808100057882,"mean":88.23092180009553,"min":75.6151810001029,"max":100.31608900044375,"p95":98.44552840022516,"q25":86.4819720000014,"q75":90.96328599935077,"sd":8.887320835090001,"median_ci95":[75.6151810001029,100.31608900044375]},"max_loop_delay_ms":{"n":5,"median":47.03045199959888,"mean":46.064655399932235,"min":36.06600100021751,"max":58.29740399996808,"p95":56.541583799953514,"q25":39.41111699998146,"q75":49.51830299989524,"sd":8.757043538958953,"median_ci95":[36.06600100021751,58.29740399996808]},"p95_loop_delay_ms":{"n":5,"median":34.48162250026144,"mean":37.544792300059264,"min":26.026979700254728,"max":50.79736319996299,"p95":49.4648343699282,"q25":32.283277050028104,"q75":44.134719049789055,"sd":9.858807344916261,"median_ci95":[26.026979700254728,50.79736319996299]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.4,"min":2,"max":3,"p95":3.0,"q25":2.0,"q75":3.0,"sd":0.5477225575051661,"median_ci95":[2.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":78.08767756904479,"mean":81.53099943523284,"min":70.606783506216,"max":95.7556669244487,"p95":94.45938558334694,"q25":73.93060895751476,"q75":89.27426021893994,"sd":10.621442313723131,"median_ci95":[70.606783506216,95.7556669244487]},"maxrss_kib":{"n":5,"median":227084,"mean":226736.8,"min":225280,"max":227312,"p95":227281.6,"q25":226848.0,"q75":227160.0,"sd":831.4344231507378,"median_ci95":[225280.0,227312.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":61.76900700029364,"mean":63.186096000208636,"min":52.07290299949818,"max":77.35549200060632,"p95":75.90818480057351,"q25":54.61412200020277,"q75":70.11895600044227,"sd":10.58095304025613,"median_ci95":[52.07290299949818,77.35549200060632]},"cpu_ms":{"n":5,"median":40.84752799999997,"mean":41.511275199999986,"min":35.309600999999965,"max":51.304925000000004,"p95":49.9413586,"q25":35.60722900000002,"q75":44.48709299999998,"sd":6.68075880316048,"median_ci95":[35.309600999999965,51.304925000000004]},"terminal_bytes":{"n":5,"median":51482,"mean":52135.2,"min":48321,"max":57909,"p95":56623.6,"q25":51482.0,"q75":51482.0,"sd":3505.8842964364926,"median_ci95":[48321.0,57909.0]},"frames":{"n":5,"median":5,"mean":5,"min":4,"max":6,"p95":5.8,"q25":5.0,"q75":5.0,"sd":0.7071067811865476,"median_ci95":[4.0,6.0]},"first_result_refresh_ms":{"n":5,"median":21.278930000335095,"mean":26.01868599995214,"min":20.515789000455698,"max":33.959618999688246,"p95":33.90577179961838,"q25":20.648708999942755,"q75":33.69038299933891,"sd":7.132621661428222,"median_ci95":[20.515789000455698,33.959618999688246]},"max_loop_delay_ms":{"n":5,"median":18.60530599980848,"mean":21.83122620019276,"min":16.23507100077404,"max":29.529065000242554,"p95":29.20545700028015,"q25":16.875663999708195,"q75":27.911025000430527,"sd":6.373809428454552,"median_ci95":[16.23507100077404,29.529065000242554]},"p95_loop_delay_ms":{"n":5,"median":16.04747940065863,"mean":17.547001200182414,"min":14.011527900011055,"max":24.20228865018543,"p95":22.95689298014621,"q25":15.498399750067614,"q75":17.97531029998934,"sd":3.981871567241626,"median_ci95":[14.011527900011055,24.20228865018543]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.8,"min":0,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":66.1294878834717,"mean":65.78613654495348,"min":63.445173085177395,"max":68.3795735381666,"p95":67.9683731185887,"q25":64.65287677767459,"q75":66.32357144027715,"sd":1.8639359877876656,"median_ci95":[63.445173085177395,68.3795735381666]},"maxrss_kib":{"n":5,"median":125584,"mean":125646.4,"min":125368,"max":126108,"p95":126043.2,"q25":125388.0,"q75":125784.0,"sd":308.29336677911186,"median_ci95":[125368.0,126108.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":91.75424400018528,"mean":94.86564560011175,"min":81.96231999954762,"max":119.43459000030998,"p95":114.1320632003044,"q25":88.25511800023378,"q75":92.92195600028208,"sd":14.381295706745838,"median_ci95":[81.96231999954762,119.43459000030998]},"cpu_ms":{"n":5,"median":64.86400999999998,"mean":67.0913894,"min":55.36865899999999,"max":85.65582800000004,"p95":81.61502300000002,"q25":64.11664699999997,"q75":65.45180299999997,"sd":11.164221238685029,"median_ci95":[55.36865899999999,85.65582800000004]},"terminal_bytes":{"n":5,"median":61554,"mean":58810.2,"min":51482,"max":61554,"p95":61554.0,"q25":57907.0,"q75":61554.0,"sd":4390.432803266666,"median_ci95":[51482.0,61554.0]},"frames":{"n":5,"median":7,"mean":6.4,"min":5,"max":7,"p95":7.0,"q25":6.0,"q75":7.0,"sd":0.8944271909999159,"median_ci95":[5.0,7.0]},"first_result_refresh_ms":{"n":5,"median":74.4443699995827,"mean":75.9997751996707,"min":64.69693799954257,"max":94.08041899951058,"p95":90.2429885994934,"q25":71.88388200029294,"q75":74.89326699942467,"sd":10.90009210456092,"median_ci95":[64.69693799954257,94.08041899951058]},"max_loop_delay_ms":{"n":5,"median":29.97889899972506,"mean":32.370216399904166,"min":23.190772000016295,"max":47.6669969995055,"p95":44.35980499958532,"q25":29.883377000369364,"q75":31.13103699990461,"sd":9.106207098674972,"median_ci95":[23.190772000016295,47.6669969995055]},"p95_loop_delay_ms":{"n":5,"median":21.82443699995929,"mean":22.701546059888635,"min":13.724431600094228,"max":34.18620099966574,"p95":31.942464839703458,"q25":20.805140499869594,"q75":22.967520199854327,"sd":7.3641411533220955,"median_ci95":[13.724431600094228,34.18620099966574]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.2,"min":1,"max":2,"p95":1.7999999999999998,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":70.69319867086367,"mean":70.76247901334891,"min":62.73705169127226,"max":78.22697917818073,"p95":76.92513791911703,"q25":70.43739264356562,"q75":71.71777288286226,"sd":5.5033924470164814,"median_ci95":[62.73705169127226,78.22697917818073]},"maxrss_kib":{"n":5,"median":137544,"mean":137499.2,"min":137316,"max":137676,"p95":137660.8,"q25":137360.0,"q75":137600.0,"sd":155.21340148324822,"median_ci95":[137316.0,137676.0]}}},{"suite":"render","scenario":"scroll_30","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":517.3895950001679,"mean":527.6131701999475,"min":505.48844300010387,"max":579.7717129999,"p95":567.4714699998731,"q25":517.1456019998004,"q75":518.2704979997652,"sd":29.628508815042988,"median_ci95":[505.48844300010387,579.7717129999]},"cpu_ms":{"n":5,"median":348.60703700000005,"mean":353.94738140000004,"min":341.23351599999995,"max":382.0748749999999,"p95":375.5876723999999,"q25":348.1826170000001,"q75":349.6388620000001,"sd":16.071040693944237,"median_ci95":[341.23351599999995,382.0748749999999]},"terminal_bytes":{"n":5,"median":909707,"mean":908477.2,"min":902443,"max":910822,"p95":910599.0,"q25":909707.0,"q75":909707.0,"sd":3407.597423405529,"median_ci95":[902443.0,910822.0]},"frames":{"n":5,"median":60,"mean":59.8,"min":59,"max":60,"p95":60.0,"q25":60.0,"q75":60.0,"sd":0.4472135954999579,"median_ci95":[59.0,60.0]},"max_loop_delay_ms":{"n":5,"median":13.230389000564172,"mean":13.628178400103932,"min":10.988020999429862,"max":17.539990000041144,"p95":16.750166600031662,"q25":12.791619000490753,"q75":13.590872999993733,"sd":2.404795252307467,"median_ci95":[10.988020999429862,17.539990000041144]},"p95_loop_delay_ms":{"n":5,"median":11.68989779991534,"mean":11.648790200033542,"min":10.260848799880474,"max":13.85555110011409,"p95":13.448770540126127,"q25":10.61600500008353,"q75":11.821648300174273,"sd":1.404847858948724,"median_ci95":[10.260848799880474,13.85555110011409]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":67.37805328301721,"mean":67.12191621904124,"min":65.84081426918391,"max":68.88043076385993,"p95":68.62621777980281,"q25":65.90091693557076,"q75":67.60936584357437,"sd":1.2774631298497707,"median_ci95":[65.84081426918391,68.88043076385993]},"maxrss_kib":{"n":5,"median":139136,"mean":139086.4,"min":138852,"max":139212,"p95":139211.2,"q25":139024.0,"q75":139208.0,"sd":151.54141348159584,"median_ci95":[138852.0,139212.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":14.310638000097242,"mean":15.699928600042767,"min":13.840185999470123,"max":21.364393000112614,"p95":20.02752860007604,"q25":14.304355000604119,"q75":14.68007099992974,"sd":3.180513443105484,"median_ci95":[13.840185999470123,21.364393000112614]},"cpu_ms":{"n":5,"median":14.263898999999913,"mean":15.610430799999953,"min":13.826674999999899,"max":21.113756999999957,"p95":19.81122999999996,"q25":14.246701000000028,"q75":14.601121999999966,"sd":3.088688845093372,"median_ci95":[13.826674999999899,21.113756999999957]},"terminal_bytes":{"n":5,"median":28924,"mean":28924,"min":28924,"max":28924,"p95":28924.0,"q25":28924.0,"q75":28924.0,"sd":0.0,"median_ci95":[28924.0,28924.0]},"frames":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"max_loop_delay_ms":{"n":5,"median":10.947294000397958,"mean":12.539028199826133,"min":9.531013000123492,"max":18.877973999333335,"p95":17.698793999370537,"q25":10.356785999756537,"q75":12.982073999519342,"sd":3.7657163213906513,"median_ci95":[9.531013000123492,18.877973999333335]},"p95_loop_delay_ms":{"n":5,"median":9.389776800317117,"mean":10.747160929849992,"min":8.173426600133093,"max":16.163990549393922,"p95":15.154600229425334,"q25":8.891571749854842,"q75":11.117038949550983,"sd":3.216701111255616,"median_ci95":[8.173426600133093,16.163990549393922]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":99.59694791829722,"mean":99.49235556964729,"min":98.82685176166092,"max":99.90237848341964,"p95":99.8565821489039,"q25":99.46220287401776,"q75":99.67339681084091,"sd":0.40485762427225286,"median_ci95":[98.82685176166092,99.90237848341964]},"maxrss_kib":{"n":5,"median":143744,"mean":143694.4,"min":143460,"max":143820,"p95":143819.2,"q25":143632.0,"q75":143816.0,"sd":151.54141348159584,"median_ci95":[143460.0,143820.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":60.623217999818735,"mean":66.68062839999038,"min":58.13961000058043,"max":81.82670699989103,"p95":80.18654759980564,"q25":59.18769700019766,"q75":73.62590999946406,"sd":10.528839803932847,"median_ci95":[58.13961000058043,81.82670699989103]},"cpu_ms":{"n":5,"median":43.939003000000085,"mean":54.298595800000044,"min":41.95770700000012,"max":72.01525600000002,"p95":71.67204040000001,"q25":43.281835000000044,"q75":70.29917799999996,"sd":15.418222962305096,"median_ci95":[41.95770700000012,72.01525600000002]},"terminal_bytes":{"n":5,"median":52778,"mean":51609.6,"min":49857,"max":52778,"p95":52778.0,"q25":49857.0,"q75":52778.0,"sd":1599.8975904725903,"median_ci95":[49857.0,52778.0]},"frames":{"n":5,"median":4,"mean":3.6,"min":3,"max":4,"p95":4.0,"q25":3.0,"q75":4.0,"sd":0.5477225575051661,"median_ci95":[3.0,4.0]},"max_loop_delay_ms":{"n":5,"median":17.657616999822494,"mean":23.41107539989025,"min":16.605223999358714,"max":33.48976900007983,"p95":33.32979520011577,"q25":16.612866999930702,"q75":32.68990000025951,"sd":8.85034158871323,"median_ci95":[16.605223999358714,33.48976900007983]},"p95_loop_delay_ms":{"n":5,"median":14.631482299382693,"mean":19.521167939901712,"min":13.294844200136136,"max":28.89648375014076,"p95":28.42889741012186,"q25":14.224477399802705,"q75":26.55855205004626,"sd":7.55235700474484,"median_ci95":[13.294844200136136,28.89648375014076]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.8,"min":0,"max":2,"p95":1.7999999999999998,"q25":0.0,"q75":1.0,"sd":0.8366600265340756,"median_ci95":[0.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":75.57498751636177,"mean":80.3167376533288,"min":70.88923733569158,"max":97.81238153867876,"p95":95.4323583877329,"q25":71.39481609196243,"q75":85.91226578394945,"sd":11.493151558332483,"median_ci95":[70.88923733569158,97.81238153867876]},"maxrss_kib":{"n":5,"median":145608,"mean":145512,"min":145124,"max":145680,"p95":145666.4,"q25":145536.0,"q75":145612.0,"sd":222.80035906613796,"median_ci95":[145124.0,145680.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":82.31832399997074,"mean":84.6467085999393,"min":66.26162900010968,"max":101.09337799985951,"p95":100.22582039982808,"q25":76.80462200005422,"q75":96.75558999970235,"sd":14.335696635334282,"median_ci95":[66.26162900010968,101.09337799985951]},"cpu_ms":{"n":5,"median":78.00415900000002,"mean":72.34249119999996,"min":52.04658000000006,"max":80.01420699999984,"p95":79.85002339999987,"q25":72.45422099999988,"q75":79.193289,"sd":11.723690023585789,"median_ci95":[52.04658000000006,80.01420699999984]},"terminal_bytes":{"n":5,"median":50570,"mean":52017.6,"min":50570,"max":54189,"p95":54189.0,"q25":50570.0,"q75":54189.0,"sd":1982.2079356111963,"median_ci95":[50570.0,54189.0]},"frames":{"n":5,"median":4,"mean":4.4,"min":4,"max":5,"p95":5.0,"q25":4.0,"q75":5.0,"sd":0.5477225575051661,"median_ci95":[4.0,5.0]},"max_loop_delay_ms":{"n":5,"median":47.63309600013599,"mean":43.38634779989661,"min":25.653494999569375,"max":50.845356999270734,"p95":50.38021259944799,"q25":44.28015600034996,"q75":48.519635000156995,"sd":10.189152167013363,"median_ci95":[25.653494999569375,50.845356999270734]},"p95_loop_delay_ms":{"n":5,"median":35.96870450007373,"mean":33.77228147990535,"min":20.62700394946659,"max":38.64562075011236,"p95":38.5837083601109,"q25":35.28401939976901,"q75":38.336058800105064,"sd":7.491419192066488,"median_ci95":[20.62700394946659,38.64562075011236]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":82.6972446762466,"mean":85.73520578317921,"min":78.33677196948553,"max":94.7591680802779,"p95":94.67448571455951,"q25":78.54708793820012,"q75":94.33575625168591,"sd":8.231592079253831,"median_ci95":[78.33677196948553,94.7591680802779]},"maxrss_kib":{"n":5,"median":149112,"mean":149129.6,"min":148232,"max":150236,"p95":150040.0,"q25":148812.0,"q75":149256.0,"sd":732.6259618659443,"median_ci95":[148232.0,150236.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":228.1109519999518,"mean":220.19955439973273,"min":175.21713099995395,"max":246.97571899923787,"p95":245.49278259928542,"q25":211.13293300004443,"q75":239.56103699947562,"sd":28.548389839143915,"median_ci95":[175.21713099995395,246.97571899923787]},"cpu_ms":{"n":5,"median":203.5524470000001,"mean":199.13545380000005,"min":171.78837300000004,"max":223.4920490000001,"p95":221.19842420000006,"q25":184.820475,"q75":212.023925,"sd":20.80653560101321,"median_ci95":[171.78837300000004,223.4920490000001]},"terminal_bytes":{"n":5,"median":97519,"mean":97519,"min":97519,"max":97519,"p95":97519.0,"q25":97519.0,"q75":97519.0,"sd":0.0,"median_ci95":[97519.0,97519.0]},"frames":{"n":5,"median":7,"mean":7,"min":7,"max":7,"p95":7.0,"q25":7.0,"q75":7.0,"sd":0.0,"median_ci95":[7.0,7.0]},"first_result_refresh_ms":{"n":5,"median":155.2450469998803,"mean":150.9051915998498,"min":131.93222799964133,"max":174.43233900030464,"p95":171.25699940024788,"q25":134.36070299940184,"q75":158.55564100002084,"sd":17.780493782131504,"median_ci95":[131.93222799964133,174.43233900030464]},"max_loop_delay_ms":{"n":5,"median":94.78363200025342,"mean":96.68925220004894,"min":80.32239299984212,"max":118.35756100037543,"p95":114.97931720034103,"q25":88.5163329995703,"q75":101.46634200020344,"sd":14.410397894470698,"median_ci95":[80.32239299984212,118.35756100037543]},"p95_loop_delay_ms":{"n":5,"median":56.38001619965505,"mean":53.9766495801177,"min":43.35144190046769,"max":60.7361114001105,"p95":59.914156660097404,"q25":52.789340700310255,"q75":56.62633770004501,"sd":6.57252012070891,"median_ci95":[43.35144190046769,60.7361114001105]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":2.8,"min":2,"max":3,"p95":3.0,"q25":3.0,"q75":3.0,"sd":0.4472135954999579,"median_ci95":[2.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":5,"median":89.23396496983763,"mean":90.76225614247623,"min":87.53749231530881,"max":98.0431376884291,"p95":96.53281146599846,"q25":88.50517916252971,"q75":90.49150657627592,"sd":4.210514029087532,"median_ci95":[87.53749231530881,98.0431376884291]},"maxrss_kib":{"n":5,"median":200144,"mean":200130.4,"min":198812,"max":201300,"p95":201098.4,"q25":200104.0,"q75":200292.0,"sd":885.0337846658737,"median_ci95":[198812.0,201300.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":194.44177799960016,"mean":186.42902439969475,"min":144.48279099997308,"max":222.015886999543,"p95":217.814130199622,"q25":170.19756299941946,"q75":201.00710299993807,"sd":29.858400079545035,"median_ci95":[144.48279099997308,222.015886999543]},"cpu_ms":{"n":5,"median":168.48948899999994,"mean":173.15319159999999,"min":145.3672829999999,"max":214.58413499999995,"p95":206.97645959999997,"q25":160.77929300000005,"q75":176.54575800000006,"sd":25.859972849097772,"median_ci95":[145.3672829999999,214.58413499999995]},"terminal_bytes":{"n":5,"median":87393,"mean":91054.4,"min":85760,"max":97363,"p95":97363.0,"q25":87393.0,"q75":97363.0,"sd":5797.396812363287,"median_ci95":[85760.0,97363.0]},"frames":{"n":5,"median":6,"mean":6,"min":5,"max":7,"p95":7.0,"q25":5.0,"q75":7.0,"sd":1.0,"median_ci95":[5.0,7.0]},"first_result_refresh_ms":{"n":5,"median":129.14012400051433,"mean":137.55573359976552,"min":99.82990600019548,"max":171.87055699923803,"p95":169.70186539929273,"q25":125.91098199936823,"q75":161.0270989995115,"sd":28.974440855259935,"median_ci95":[99.82990600019548,171.87055699923803]},"max_loop_delay_ms":{"n":5,"median":79.53679500053113,"mean":87.37486460006039,"min":61.97565100057545,"max":111.28517999997712,"p95":110.94803279986081,"q25":74.47725299982267,"q75":109.59944399939559,"sd":22.014420748175283,"median_ci95":[61.97565100057545,111.28517999997712]},"p95_loop_delay_ms":{"n":5,"median":56.28401299993128,"mean":57.537104900075036,"min":43.88707700029043,"max":79.55985079999661,"p95":75.74376403994388,"q25":47.475166700423856,"q75":60.47941699973301,"sd":13.989233706434833,"median_ci95":[43.88707700029043,79.55985079999661]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.2,"min":2,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[2.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"one_core_cpu_percent":{"n":5,"median":96.65260351410872,"mean":93.35588652234937,"min":82.68762745027495,"max":100.61217809671672,"p95":100.28902585495906,"q25":87.83060666271801,"q75":98.99641688792843,"sd":7.7407713164961,"median_ci95":[82.68762745027495,100.61217809671672]},"maxrss_kib":{"n":5,"median":207680,"mean":207692,"min":207384,"max":207948,"p95":207916.0,"q25":207660.0,"q75":207788.0,"sd":206.63010429267078,"median_ci95":[207384.0,207948.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":161.75181200014777,"mean":155.27623420020973,"min":119.91117100023985,"max":182.63197600026615,"p95":179.43447940015176,"q25":145.4417190007007,"q75":166.6444929996942,"sd":23.806051802817382,"median_ci95":[119.91117100023985,182.63197600026615]},"cpu_ms":{"n":5,"median":156.57460899999998,"mean":147.779703,"min":96.09953100000013,"max":176.91921599999995,"p95":174.61889099999996,"q25":143.88756800000002,"q75":165.417591,"sd":31.319105891349857,"median_ci95":[96.09953100000013,176.91921599999995]},"terminal_bytes":{"n":5,"median":84695,"mean":82377.6,"min":73108,"max":84695,"p95":84695.0,"q25":84695.0,"q75":84695.0,"sd":5181.863931058013,"median_ci95":[73108.0,84695.0]},"frames":{"n":5,"median":5,"mean":5.4,"min":5,"max":7,"p95":6.6,"q25":5.0,"q75":5.0,"sd":0.8944271909999159,"median_ci95":[5.0,7.0]},"first_result_refresh_ms":{"n":5,"median":105.95215699959226,"mean":107.94282979950367,"min":93.96042199932708,"max":128.17497799915145,"p95":124.92808139923,"q25":99.68609699990338,"q75":111.94049499954417,"sd":13.162116950123062,"median_ci95":[93.96042199932708,128.17497799915145]},"max_loop_delay_ms":{"n":5,"median":51.58008099999279,"mean":52.09593559986388,"min":32.207049999778974,"max":77.56613199955609,"p95":72.41832879964932,"q25":47.299298999969324,"q75":51.827116000022215,"sd":16.337416929161982,"median_ci95":[32.207049999778974,77.56613199955609]},"p95_loop_delay_ms":{"n":5,"median":40.579673150086805,"mean":40.0277052099318,"min":27.401121099701403,"max":56.52375639976525,"p95":53.7375691998386,"q25":33.041154999973514,"q75":42.592820400132034,"sd":11.036832647237967,"median_ci95":[27.401121099701403,56.52375639976525]},"loop_delays_over_16_7_ms":{"n":5,"median":4,"mean":3.4,"min":1,"max":5,"p95":4.8,"q25":3.0,"q75":4.0,"sd":1.51657508881031,"median_ci95":[1.0,5.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":96.87198259287416,"mean":94.40174593224666,"min":80.14226714524197,"max":99.26376084945306,"p95":99.19729407121226,"q25":96.79929211541503,"q75":98.93142695824903,"sd":8.052021972607774,"median_ci95":[80.14226714524197,99.26376084945306]},"maxrss_kib":{"n":5,"median":237724,"mean":235364.8,"min":229276,"max":238800,"p95":238598.4,"q25":233232.0,"q75":237792.0,"sd":4027.4075035933474,"median_ci95":[229276.0,238800.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"preview-thread","metrics":{"wall_ms":{"n":5,"median":136.2310200001957,"mean":144.1328656001133,"min":111.53197899966472,"max":202.70635200085962,"p95":189.7742636007024,"q25":132.1490669997729,"q75":138.0459100000735,"sd":34.412108107209285,"median_ci95":[111.53197899966472,202.70635200085962]},"cpu_ms":{"n":5,"median":127.55776500000016,"mean":128.21151160000005,"min":76.16068200000004,"max":175.72852900000012,"p95":167.61000100000007,"q25":126.47469300000003,"q75":135.13588899999985,"sd":35.42085095845416,"median_ci95":[76.16068200000004,175.72852900000012]},"terminal_bytes":{"n":5,"median":102828,"mean":98693.6,"min":71886,"max":119966,"p95":116538.4,"q25":95960.0,"q75":102828.0,"sd":17412.793538085727,"median_ci95":[71886.0,119966.0]},"frames":{"n":5,"median":7,"mean":6.6,"min":5,"max":8,"p95":7.8,"q25":6.0,"q75":7.0,"sd":1.140175425099138,"median_ci95":[5.0,8.0]},"first_result_refresh_ms":{"n":5,"median":93.733992000125,"mean":98.01998179991642,"min":85.0928820000263,"max":125.83391799944366,"p95":119.65763679963857,"q25":90.48660499956895,"q75":94.95251200041821,"sd":16.0098079446511,"median_ci95":[85.0928820000263,125.83391799944366]},"max_loop_delay_ms":{"n":5,"median":50.73838100008288,"mean":52.70933720014,"min":42.39492299995618,"max":73.42609199997241,"p95":69.3165804000455,"q25":44.108756000350695,"q75":52.87853400033782,"sd":12.384005436481798,"median_ci95":[42.39492299995618,73.42609199997241]},"p95_loop_delay_ms":{"n":5,"median":33.6489104002976,"mean":35.082494450125495,"min":27.77280830056949,"max":45.04639499966281,"p95":43.62939851973345,"q25":30.98294595008153,"q75":37.96141260001603,"sd":6.705603190839429,"median_ci95":[27.77280830056949,45.04639499966281]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":1,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.7071067811865476,"median_ci95":[1.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":92.83839539615745,"mean":88.44663800564118,"min":68.28595949169788,"max":97.89199042545187,"p95":97.61872523247935,"q25":86.6911802543094,"q75":96.52566446058931,"sd":12.075879614241519,"median_ci95":[68.28595949169788,97.89199042545187]},"maxrss_kib":{"n":5,"median":237980,"mean":235748.8,"min":230172,"max":239056,"p95":238854.4,"q25":233488.0,"q75":238048.0,"sd":3788.6033310443045,"median_ci95":[230172.0,239056.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":43.59994199967332,"mean":45.317376400271314,"min":36.92168100042181,"max":57.396615000470774,"p95":55.46765260041866,"q25":40.91684100058046,"q75":47.7518030002102,"sd":7.820428888532623,"median_ci95":[36.92168100042181,57.396615000470774]},"cpu_ms":{"n":5,"median":26.357225999999955,"mean":23.788176399999983,"min":17.611684000000018,"max":29.270943999999965,"p95":29.013971199999965,"q25":17.714948000000007,"q75":27.98607999999997,"sd":5.685866525948046,"median_ci95":[17.611684000000018,29.270943999999965]},"terminal_bytes":{"n":5,"median":46785,"mean":48723.6,"min":43624,"max":53212,"p95":53212.0,"q25":46785.0,"q75":53212.0,"sd":4295.745837453608,"median_ci95":[43624.0,53212.0]},"frames":{"n":5,"median":4,"mean":4.2,"min":3,"max":5,"p95":5.0,"q25":4.0,"q75":5.0,"sd":0.8366600265340756,"median_ci95":[3.0,5.0]},"first_result_refresh_ms":{"n":5,"median":9.529230000225652,"mean":8.585468599994783,"min":5.904718000238063,"max":10.587626999949862,"p95":10.577563399965584,"q25":6.3684589995318674,"q75":10.537309000028472,"sd":2.2809296423235437,"median_ci95":[5.904718000238063,10.587626999949862]},"max_loop_delay_ms":{"n":5,"median":13.189532999713263,"mean":12.632562399921879,"min":7.813655000172729,"max":16.270571999593813,"p95":16.124282599703292,"q25":10.349926999988382,"q75":15.53912500014121,"sd":3.5505537998218513,"median_ci95":[7.813655000172729,16.270571999593813]},"p95_loop_delay_ms":{"n":5,"median":11.81434374972923,"mean":10.272411769919923,"min":5.92393715011894,"max":13.461714899740395,"p95":13.222885879767995,"q25":7.8944932501326495,"q75":12.267569799878398,"sd":3.20521419933792,"median_ci95":[5.92393715011894,13.461714899740395]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":48.759112361888285,"mean":52.30641292797776,"min":43.0426288279444,"max":61.29809171785851,"p95":61.12896010025422,"q25":47.97979810236056,"q75":60.45243362983703,"sd":8.12909241156372,"median_ci95":[43.0426288279444,61.29809171785851]},"maxrss_kib":{"n":5,"median":115780,"mean":115980,"min":115432,"max":116520,"p95":116514.4,"q25":115676.0,"q75":116492.0,"sd":496.6044703785901,"median_ci95":[115432.0,116520.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":60.94070799917972,"mean":60.917520799921476,"min":55.307122000158415,"max":65.44624500020291,"p95":65.42011160017864,"q25":57.57795099998475,"q75":65.31557800008159,"sd":4.540982514977803,"median_ci95":[55.307122000158415,65.44624500020291]},"cpu_ms":{"n":5,"median":25.51826099999999,"mean":30.145405999999998,"min":24.047280000000004,"max":39.79769500000002,"p95":39.01131140000001,"q25":25.498016999999983,"q75":35.86577699999999,"sd":7.177833297684344,"median_ci95":[24.047280000000004,39.79769500000002]},"terminal_bytes":{"n":5,"median":55138,"mean":56596.8,"min":55138,"max":58785,"p95":58785.0,"q25":55138.0,"q75":58785.0,"sd":1997.5441672213408,"median_ci95":[55138.0,58785.0]},"frames":{"n":5,"median":5,"mean":5.4,"min":5,"max":6,"p95":6.0,"q25":5.0,"q75":6.0,"sd":0.5477225575051661,"median_ci95":[5.0,6.0]},"first_result_refresh_ms":{"n":5,"median":43.61113699997077,"mean":43.35659720018157,"min":38.79689000041253,"max":46.71602899998106,"p95":46.67047740003909,"q25":41.17065900027228,"q75":46.4882710002712,"sd":3.417865155283224,"median_ci95":[38.79689000041253,46.71602899998106]},"max_loop_delay_ms":{"n":5,"median":8.595313999758217,"mean":10.435143599825095,"min":8.007810000090101,"max":13.650867999895125,"p95":13.620978599938097,"q25":8.420304999272046,"q75":13.501421000109984,"sd":2.8757362735770324,"median_ci95":[8.007810000090101,13.650867999895125]},"p95_loop_delay_ms":{"n":5,"median":8.464379899824051,"mean":9.808219329861457,"min":7.168275999556498,"max":13.484923600044565,"p95":13.302644050072557,"q25":7.349991299697647,"q75":12.57352585018452,"sd":2.9992984467601707,"median_ci95":[7.168275999556498,13.484923600044565]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":43.47953596271223,"mean":49.49799548735974,"min":39.06918040282536,"max":62.29081858089999,"p95":61.994603957407165,"q25":41.84069702692524,"q75":60.809745463435874,"sd":11.12686241774023,"median_ci95":[39.06918040282536,62.29081858089999]},"maxrss_kib":{"n":5,"median":122124,"mean":122098.4,"min":121960,"max":122180,"p95":122174.4,"q25":122076.0,"q75":122152.0,"sd":86.37592257104986,"median_ci95":[121960.0,122180.0]}}},{"suite":"render","scenario":"scroll_30","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":542.6079070002743,"mean":556.1422982002114,"min":506.61710200074594,"max":603.0850200004352,"p95":600.028568000198,"q25":540.5987020003522,"q75":587.8027599992492,"sd":38.99850047730778,"median_ci95":[506.61710200074594,603.0850200004352]},"cpu_ms":{"n":5,"median":358.358972,"mean":362.8279572,"min":334.63411399999995,"max":386.9372360000001,"p95":385.1879172000001,"q25":356.018822,"q75":378.19064199999997,"sd":20.484740380318293,"median_ci95":[334.63411399999995,386.9372360000001]},"terminal_bytes":{"n":5,"median":911474,"mean":911931.6,"min":904210,"max":919882,"p95":919882.0,"q25":904210.0,"q75":919882.0,"sd":7840.174283777115,"median_ci95":[904210.0,919882.0]},"frames":{"n":5,"median":60,"mean":60,"min":59,"max":61,"p95":61.0,"q25":59.0,"q75":61.0,"sd":1.0,"median_ci95":[59.0,61.0]},"max_loop_delay_ms":{"n":5,"median":20.30143700005283,"mean":19.213528800282802,"min":10.839529000004402,"max":26.455316000574385,"p95":25.6773204005367,"q25":15.906024000396426,"q75":22.565338000385964,"sd":6.039973337599764,"median_ci95":[10.839529000004402,26.455316000574385]},"p95_loop_delay_ms":{"n":5,"median":11.789001299230215,"mean":12.024261929982451,"min":9.845592100482458,"max":14.768835400100201,"p95":14.305678520067874,"q25":11.264829850160819,"q75":12.453050999938565,"sd":1.8093666345993629,"median_ci95":[9.845592100482458,14.768835400100201]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":65.85639600736002,"mean":65.29044988498886,"min":64.15964966261654,"max":66.05266831270676,"p95":66.05089800863297,"q25":64.33971864992314,"q75":66.04381679233784,"sd":0.9554361132900405,"median_ci95":[64.15964966261654,66.05266831270676]},"maxrss_kib":{"n":5,"median":125020,"mean":124991.2,"min":124776,"max":125124,"p95":125118.4,"q25":124940.0,"q75":125096.0,"sd":139.98285609316594,"median_ci95":[124776.0,125124.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":15.190632999292575,"mean":15.346296799907577,"min":14.101948999268643,"max":16.423904000475886,"p95":16.328785600489937,"q25":15.066685999954643,"q75":15.948312000546139,"sd":0.8908527442489773,"median_ci95":[14.101948999268643,16.423904000475886]},"cpu_ms":{"n":5,"median":15.149236000000066,"mean":15.215215000000025,"min":14.045868000000073,"max":16.123777999999977,"p95":16.05457899999998,"q25":14.979410000000026,"q75":15.777782999999989,"sd":0.8014516692333594,"median_ci95":[14.045868000000073,16.123777999999977]},"terminal_bytes":{"n":5,"median":28981,"mean":29746.4,"min":28981,"max":32808,"p95":32042.6,"q25":28981.0,"q75":28981.0,"sd":1711.486429978339,"median_ci95":[28981.0,32808.0]},"frames":{"n":5,"median":2,"mean":2.2,"min":2,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[2.0,3.0]},"max_loop_delay_ms":{"n":5,"median":13.786935000207448,"mean":12.827771600059348,"min":9.772389999961886,"max":14.614261000242548,"p95":14.512750800276988,"q25":11.85856199947011,"q75":14.106710000414749,"sd":2.0013711680459663,"median_ci95":[9.772389999961886,14.614261000242548]},"p95_loop_delay_ms":{"n":5,"median":11.797047750287668,"mean":10.986589400072255,"min":8.38876434997473,"max":12.504838150216521,"p95":12.419872890231993,"q25":10.16228489958848,"q75":12.080011850293879,"sd":1.7018862740962737,"median_ci95":[8.38876434997473,12.504838150216521]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":99.42073525687812,"mean":99.17078048919356,"min":98.17262691947533,"max":99.72748338206554,"p95":99.70245018304627,"q25":98.93073950057968,"q75":99.60231738696915,"sd":0.6349310623835515,"median_ci95":[98.17262691947533,99.72748338206554]},"maxrss_kib":{"n":5,"median":129628,"mean":129624.8,"min":129512,"max":129732,"p95":129726.4,"q25":129548.0,"q75":129704.0,"sd":95.38972691018672,"median_ci95":[129512.0,129732.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":59.480855999936466,"mean":66.64633639993554,"min":55.4200229998969,"max":86.0538369997812,"p95":83.82915199981653,"q25":57.34655400010524,"q75":74.93041199995787,"sd":13.314814706584787,"median_ci95":[55.4200229998969,86.0538369997812]},"cpu_ms":{"n":5,"median":50.99682299999997,"mean":54.70780820000001,"min":44.692642000000006,"max":71.53743899999998,"p95":69.30920899999997,"q25":45.915848000000146,"q75":60.39628899999994,"sd":11.257984011390526,"median_ci95":[44.692642000000006,71.53743899999998]},"terminal_bytes":{"n":5,"median":52892,"mean":52892,"min":49971,"max":55813,"p95":55228.8,"q25":52892.0,"q75":52892.0,"sd":2065.4589078459053,"median_ci95":[49971.0,55813.0]},"frames":{"n":5,"median":4,"mean":4,"min":3,"max":5,"p95":4.8,"q25":4.0,"q75":4.0,"sd":0.7071067811865476,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":23.612973999770475,"mean":25.553389600208902,"min":19.47377100088488,"max":33.49353700024949,"p95":33.05658860019321,"q25":19.87787100017158,"q75":31.30879499996809,"sd":6.502098093019466,"median_ci95":[19.47377100088488,33.49353700024949]},"p95_loop_delay_ms":{"n":5,"median":20.251635699896717,"mean":21.12120196020441,"min":15.442193800545276,"max":27.34667950005132,"p95":26.92617858009725,"q25":17.32132590024775,"q75":25.24417490028098,"sd":5.079414673299333,"median_ci95":[15.442193800545276,27.34667950005132]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.2,"min":1,"max":2,"p95":1.7999999999999998,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":80.64349233504134,"mean":82.0363084656739,"min":80.0673184301813,"max":85.73653176755634,"p95":85.21543093703224,"q25":80.60317218065464,"q75":83.13102761493583,"sd":2.385414043966622,"median_ci95":[80.0673184301813,85.73653176755634]},"maxrss_kib":{"n":5,"median":136532,"mean":136529.6,"min":136420,"max":136676,"p95":136650.4,"q25":136472.0,"q75":136548.0,"sd":96.31614610230208,"median_ci95":[136420.0,136676.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":68.43805399967096,"mean":79.44964039998013,"min":68.05051500032278,"max":99.7578849992351,"p95":98.34685519945197,"q25":68.29901200035238,"q75":92.70273600031942,"sd":15.520961232556392,"median_ci95":[68.05051500032278,99.7578849992351]},"cpu_ms":{"n":5,"median":57.90601399999984,"mean":64.32984880000004,"min":54.163664000000054,"max":76.53609300000008,"p95":76.51277360000007,"q25":56.6239770000001,"q75":76.41949600000008,"sd":11.170825775362156,"median_ci95":[54.163664000000054,76.53609300000008]},"terminal_bytes":{"n":5,"median":54303,"mean":54303,"min":54303,"max":54303,"p95":54303.0,"q25":54303.0,"q75":54303.0,"sd":0.0,"median_ci95":[54303.0,54303.0]},"frames":{"n":5,"median":5,"mean":5,"min":5,"max":5,"p95":5.0,"q25":5.0,"q75":5.0,"sd":0.0,"median_ci95":[5.0,5.0]},"max_loop_delay_ms":{"n":5,"median":29.97480199985148,"mean":36.08644300013111,"min":26.368128999929468,"max":53.52203799986455,"p95":51.61554599992087,"q25":26.577668000863923,"q75":43.98957800014614,"sd":12.131303521599557,"median_ci95":[26.368128999929468,53.52203799986455]},"p95_loop_delay_ms":{"n":5,"median":25.12184839981272,"mean":28.09856347005733,"min":20.712811499988664,"max":39.239869399962096,"p95":38.11464432001228,"q25":21.804544050310135,"q75":33.61374400021303,"sd":8.024505581855012,"median_ci95":[20.712811499988664,39.239869399962096]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":82.43499523006179,"mean":81.25825781522866,"min":76.7218481031218,"max":84.78309173740476,"p95":84.46822165582056,"q25":79.14261267607122,"q75":83.20874132948373,"sd":3.266057198393433,"median_ci95":[76.7218481031218,84.78309173740476]},"maxrss_kib":{"n":5,"median":140104,"mean":140228,"min":139996,"max":140776,"p95":140657.6,"q25":140080.0,"q75":140184.0,"sd":313.5857139603142,"median_ci95":[139996.0,140776.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":67.13752700034092,"mean":70.86499180022656,"min":62.32971600002202,"max":89.46033000029274,"p95":85.45567520031909,"q25":65.96033000005264,"q75":69.43705600042449,"sd":10.707780321070587,"median_ci95":[62.32971600002202,89.46033000029274]},"cpu_ms":{"n":5,"median":62.19032400000013,"mean":61.773084000000054,"min":60.01767400000002,"max":63.550942,"p95":63.3201664,"q25":60.709416000000125,"q75":62.397064,"sd":1.4086405865663327,"median_ci95":[60.01767400000002,63.550942]},"terminal_bytes":{"n":5,"median":77109,"mean":77109,"min":77109,"max":77109,"p95":77109.0,"q25":77109.0,"q75":77109.0,"sd":0.0,"median_ci95":[77109.0,77109.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":60.91381500027637,"mean":59.786113199879765,"min":56.28728099964064,"max":62.86975300008635,"p95":62.516428799972346,"q25":57.756584999879124,"q75":61.103131999516336,"sd":2.6868148320390435,"median_ci95":[56.28728099964064,62.86975300008635]},"max_loop_delay_ms":{"n":5,"median":19.278182000671222,"mean":19.347247399964544,"min":17.76045599955978,"max":21.66302400029963,"p95":21.33239680017141,"q25":18.02468699963356,"q75":20.00988799965853,"sd":1.5869591060676422,"median_ci95":[17.76045599955978,21.66302400029963]},"p95_loop_delay_ms":{"n":5,"median":17.99862200015923,"mean":18.6309139999139,"min":17.614032899491576,"max":20.630054400335208,"p95":20.360788420202876,"q25":17.62813619990993,"q75":19.283724499673554,"sd":1.309783145288161,"median_ci95":[17.614032899491576,20.630054400335208]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":92.03928482460849,"mean":88.45993311929065,"min":69.74830519828825,"max":96.29062644851265,"p95":95.96407187325639,"q25":89.56359555281252,"q75":94.65785357223135,"sd":10.769039242300915,"median_ci95":[69.74830519828825,96.29062644851265]},"maxrss_kib":{"n":5,"median":163304,"mean":163319.2,"min":163248,"max":163400,"p95":163390.4,"q25":163292.0,"q75":163352.0,"sd":58.40547919502074,"median_ci95":[163248.0,163400.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":97.34508100063977,"mean":89.90840240003308,"min":66.7576089999784,"max":117.83933399965463,"p95":114.28569559975585,"q25":67.52884599973186,"q75":100.07114200016076,"sd":22.223445865446593,"median_ci95":[66.7576089999784,117.83933399965463]},"cpu_ms":{"n":5,"median":67.77957899999998,"mean":71.10579179999993,"min":62.465197999999944,"max":89.29646400000001,"p95":85.29187039999998,"q25":66.71422199999988,"q75":69.27349599999988,"sd":10.479352330920884,"median_ci95":[62.465197999999944,89.29646400000001]},"terminal_bytes":{"n":5,"median":76909,"mean":76909,"min":76909,"max":76909,"p95":76909.0,"q25":76909.0,"q75":76909.0,"sd":0.0,"median_ci95":[76909.0,76909.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":62.571436000325775,"mean":66.33105599994451,"min":59.278279999489314,"max":83.44695800042246,"p95":79.69594540027174,"q25":61.66671099981613,"q75":64.69189499966888,"sd":9.763112416247472,"median_ci95":[59.278279999489314,83.44695800042246]},"max_loop_delay_ms":{"n":5,"median":21.81037100046524,"mean":23.696637000030023,"min":18.77450800031511,"max":34.18874600003619,"p95":31.756160400000226,"q25":21.683741999477206,"q75":22.025817999856372,"sd":6.014837632753499,"median_ci95":[18.77450800031511,34.18874600003619]},"p95_loop_delay_ms":{"n":5,"median":20.700430549522935,"mean":22.513035929914622,"min":18.581849500260432,"max":32.15754539975933,"p95":29.96501655985412,"q25":19.930452999797122,"q75":21.19490120023329,"sd":5.480956615413334,"median_ci95":[18.581849500260432,32.15754539975933]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":75.77814721887492,"mean":81.40723431445612,"min":67.73139353190463,"max":98.79366515498397,"p95":97.74896305940314,"q25":71.16281098943726,"q75":93.57015467707981,"sd":13.909421815998606,"median_ci95":[67.73139353190463,98.79366515498397]},"maxrss_kib":{"n":5,"median":180656,"mean":180676,"min":180584,"max":180808,"p95":180786.4,"q25":180632.0,"q75":180700.0,"sd":84.8528137423857,"median_ci95":[180584.0,180808.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":123.08401300015248,"mean":117.17539180008316,"min":106.22497600070346,"max":124.28146699949139,"p95":124.18500099956873,"q25":108.48736600019038,"q75":123.7991369998781,"sd":9.00937717292748,"median_ci95":[106.22497600070346,124.28146699949139]},"cpu_ms":{"n":5,"median":102.09143100000007,"mean":90.60729580000002,"min":72.21561799999998,"max":102.82120700000009,"p95":102.81058760000006,"q25":73.14011300000001,"q75":102.76810999999996,"sd":16.37304703902055,"median_ci95":[72.21561799999998,102.82120700000009]},"terminal_bytes":{"n":5,"median":74955,"mean":74955,"min":74955,"max":74955,"p95":74955.0,"q25":74955.0,"q75":74955.0,"sd":0.0,"median_ci95":[74955.0,74955.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":98.48956299993006,"mean":89.70427819986071,"min":74.4242819991996,"max":99.60233900073945,"p95":99.59059920056461,"q25":76.46156699956919,"q75":99.54363999986526,"sd":13.046202139838966,"median_ci95":[74.4242819991996,99.60233900073945]},"max_loop_delay_ms":{"n":5,"median":36.44864099998813,"mean":32.94761360022676,"min":23.237018000254466,"max":42.69473600026686,"p95":41.94880440019915,"q25":23.39259500069602,"q75":38.965077999928326,"sd":9.07010905502931,"median_ci95":[23.237018000254466,42.69473600026686]},"p95_loop_delay_ms":{"n":5,"median":34.220733299998756,"mean":29.506550610258266,"min":21.07676540046668,"max":35.701619000128616,"p95":35.4463938601384,"q25":22.108142050519746,"q75":34.425493300177536,"sd":7.255965061143884,"median_ci95":[21.07676540046668,35.701619000128616]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":3,"min":3,"max":3,"p95":3.0,"q25":3.0,"q75":3.0,"sd":0.0,"median_ci95":[3.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":82.46538180641808,"mean":76.82241795088014,"min":66.56592436751875,"max":83.49427963473424,"p95":83.34193051727345,"q25":68.8539698982993,"q75":82.73253404743032,"sd":8.366272716543229,"median_ci95":[66.56592436751875,83.49427963473424]},"maxrss_kib":{"n":5,"median":194024,"mean":194013.6,"min":193840,"max":194120,"p95":194110.4,"q25":194012.0,"q75":194072.0,"sd":106.04150130962877,"median_ci95":[193840.0,194120.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"row-backend","metrics":{"wall_ms":{"n":5,"median":106.2260589997095,"mean":106.9714784000098,"min":90.97574299994449,"max":123.91964000016742,"p95":120.6416518001788,"q25":106.20625100000325,"q75":107.52969900022435,"sd":11.66786790622572,"median_ci95":[90.97574299994449,123.91964000016742]},"cpu_ms":{"n":5,"median":73.07120300000003,"mean":77.55846660000007,"min":63.15334000000017,"max":92.46530100000005,"p95":91.90603420000008,"q25":69.43352199999997,"q75":89.66896700000015,"sd":12.869886008609457,"median_ci95":[63.15334000000017,92.46530100000005]},"terminal_bytes":{"n":5,"median":75185,"mean":75185,"min":75185,"max":75185,"p95":75185.0,"q25":75185.0,"q75":75185.0,"sd":0.0,"median_ci95":[75185.0,75185.0]},"frames":{"n":5,"median":6,"mean":6,"min":6,"max":6,"p95":6.0,"q25":6.0,"q75":6.0,"sd":0.0,"median_ci95":[6.0,6.0]},"first_result_refresh_ms":{"n":5,"median":68.91258100040432,"mean":73.54224980008439,"min":58.715301000120235,"max":86.92360700024437,"p95":86.4610246000666,"q25":68.54906500029756,"q75":84.61069499935547,"sd":11.914018402745697,"median_ci95":[58.715301000120235,86.92360700024437]},"max_loop_delay_ms":{"n":5,"median":24.135474000213435,"mean":28.160912200037274,"min":20.06915600042703,"max":37.972048999217805,"p95":37.2893283994199,"q25":24.069436000099813,"q75":34.55844600022829,"sd":7.67475883344238,"median_ci95":[20.06915600042703,37.972048999217805]},"p95_loop_delay_ms":{"n":5,"median":23.000500200141683,"mean":24.981532990022963,"min":17.96616445028121,"max":32.71140404969628,"p95":32.35929152973767,"q25":20.278754800092422,"q75":30.95084144990323,"sd":6.531453885909375,"median_ci95":[17.96616445028121,32.71140404969628]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":1.8,"min":1,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":69.41777875893655,"mean":72.31787880304701,"min":65.37611613839739,"max":83.389954434647,"p95":81.63539311866779,"q25":68.78839682850312,"q75":74.61714785475097,"sd":7.0166478665171175,"median_ci95":[65.37611613839739,83.389954434647]},"maxrss_kib":{"n":5,"median":199240,"mean":199312.8,"min":199144,"max":199516,"p95":199507.2,"q25":199192.0,"q75":199472.0,"sd":169.57358284827268,"median_ci95":[199144.0,199516.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":179.77673900077207,"mean":181.07653760016547,"min":166.1904760003381,"max":197.19833199997083,"p95":196.86567680000735,"q25":166.68208499959292,"q75":195.53505600015342,"sd":14.995379130046661,"median_ci95":[166.1904760003381,197.19833199997083]},"cpu_ms":{"n":5,"median":72.46002499999999,"mean":71.87846039999998,"min":64.14497999999996,"max":82.314316,"p95":80.8293082,"q25":65.58370399999997,"q75":74.88927699999998,"sd":7.378024690243761,"median_ci95":[64.14497999999996,82.314316]},"terminal_bytes":{"n":5,"median":71643,"mean":71643,"min":71643,"max":71643,"p95":71643.0,"q25":71643.0,"q75":71643.0,"sd":0.0,"median_ci95":[71643.0,71643.0]},"frames":{"n":5,"median":8,"mean":8,"min":8,"max":8,"p95":8.0,"q25":8.0,"q75":8.0,"sd":0.0,"median_ci95":[8.0,8.0]},"first_result_refresh_ms":{"n":5,"median":27.61121500043373,"mean":29.460461400230997,"min":24.50896099981037,"max":40.38947000026383,"p95":37.86945780029782,"q25":27.00325200021325,"q75":27.789409000433807,"sd":6.249211782307507,"median_ci95":[24.50896099981037,40.38947000026383]},"max_loop_delay_ms":{"n":5,"median":24.20800300034898,"mean":25.61628820032638,"min":19.511986000106845,"max":36.76715800076636,"p95":34.43219280063204,"q25":22.50196200031496,"q75":25.092332000094757,"sd":6.587131918412662,"median_ci95":[19.511986000106845,36.76715800076636]},"p95_loop_delay_ms":{"n":5,"median":10.457763799895465,"mean":10.292581930070803,"min":7.424852750154968,"max":14.466483199721543,"p95":13.800992259821207,"q25":7.9747814003621755,"q75":11.139028500219863,"sd":2.8178572799152852,"median_ci95":[7.424852750154968,14.466483199721543]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":36.7447453865942,"mean":40.082415053122304,"min":33.54063733714762,"max":49.38402108433011,"p95":48.519680012445704,"q25":35.680355732631504,"q75":45.0623157249081,"sd":6.7939735466415145,"median_ci95":[33.54063733714762,49.38402108433011]},"maxrss_kib":{"n":5,"median":122072,"mean":122113.6,"min":121968,"max":122320,"p95":122299.2,"q25":121992.0,"q75":122216.0,"sd":150.66784660304933,"median_ci95":[121968.0,122320.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":232.4159959998724,"mean":242.5029933998303,"min":161.934237999958,"max":356.00037699987297,"p95":331.37125539979024,"q25":229.30958699998882,"q75":232.85476899945934,"sd":70.25290412822402,"median_ci95":[161.934237999958,356.00037699987297]},"cpu_ms":{"n":5,"median":76.98792500000002,"mean":80.27664980000002,"min":68.75446300000004,"max":93.21515899999999,"p95":92.39015279999998,"q25":73.33557400000007,"q75":89.09012799999994,"sd":10.450328356395449,"median_ci95":[68.75446300000004,93.21515899999999]},"terminal_bytes":{"n":5,"median":71586,"mean":74343.8,"min":71586,"max":81695,"p95":80409.2,"q25":71586.0,"q75":75266.0,"sd":4407.5780424174,"median_ci95":[71586.0,81695.0]},"frames":{"n":5,"median":8,"mean":8.6,"min":8,"max":10,"p95":9.8,"q25":8.0,"q75":9.0,"sd":0.8944271909999159,"median_ci95":[8.0,10.0]},"first_result_refresh_ms":{"n":5,"median":59.68234600004507,"mean":58.27267180011404,"min":45.068948000334785,"max":68.71807600055035,"p95":66.91268600043259,"q25":58.20286299967847,"q75":59.691125999961514,"sd":8.477158398115847,"median_ci95":[45.068948000334785,68.71807600055035]},"max_loop_delay_ms":{"n":5,"median":17.85358700009965,"mean":17.319224999955622,"min":11.746188999604781,"max":21.68491999975231,"p95":21.153267599875107,"q25":16.28477099995507,"q75":19.026658000366297,"sd":3.6874445205542674,"median_ci95":[11.746188999604781,21.68491999975231]},"p95_loop_delay_ms":{"n":5,"median":11.275917500252033,"mean":10.235489310070985,"min":4.6625990001484725,"max":12.86154750006971,"p95":12.713862550072001,"q25":10.254259799803547,"q75":12.123122750081162,"sd":3.2634066241329966,"median_ci95":[4.6625990001484725,12.86154750006971]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":38.851462411819824,"mean":35.01585030497387,"min":20.599858522067308,"max":42.458261976703085,"p95":41.98801607698518,"q25":33.06263613616553,"q75":40.10703247811358,"sd":8.770082843391977,"median_ci95":[20.599858522067308,42.458261976703085]},"maxrss_kib":{"n":5,"median":130112,"mean":130100,"min":129944,"max":130256,"p95":130235.2,"q25":130036.0,"q75":130152.0,"sd":117.91522378386941,"median_ci95":[129944.0,130256.0]}}},{"suite":"render","scenario":"scroll_30","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":530.4769169997599,"mean":534.5789447997959,"min":504.41655999929935,"max":581.0279299994363,"p95":571.5119689995845,"q25":523.5251920003066,"q75":533.4481250001772,"sd":28.3176999391429,"median_ci95":[504.41655999929935,581.0279299994363]},"cpu_ms":{"n":5,"median":358.497343,"mean":366.4004116,"min":343.72934399999997,"max":391.14627999999993,"p95":390.7366281999999,"q25":349.53107000000006,"q75":389.098021,"sd":22.29658023544558,"median_ci95":[343.72934399999997,391.14627999999993]},"terminal_bytes":{"n":5,"median":910953,"mean":906020.8,"min":893560,"max":910953,"p95":910953.0,"q25":903685.0,"q75":910953.0,"sd":7643.743991003362,"median_ci95":[893560.0,910953.0]},"frames":{"n":5,"median":60,"mean":59.6,"min":59,"max":60,"p95":60.0,"q25":59.0,"q75":60.0,"sd":0.5477225575051661,"median_ci95":[59.0,60.0]},"max_loop_delay_ms":{"n":5,"median":14.1902630003824,"mean":14.705851600156164,"min":11.944903999501546,"max":19.75181000045268,"p95":18.73571680036548,"q25":12.97093700042751,"q75":14.671344000016687,"sd":3.0150239998265,"median_ci95":[11.944903999501546,19.75181000045268]},"p95_loop_delay_ms":{"n":5,"median":12.575377400044088,"mean":12.489211600150153,"min":10.83012100036285,"max":14.346156000392508,"p95":14.121292760301,"q25":11.472563800016353,"q75":13.221839799934965,"sd":1.3945039886642694,"median_ci95":[10.83012100036285,14.346156000392508]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":67.58019651968424,"mean":68.59042138849094,"min":64.43538329052816,"max":74.32269295643984,"p95":73.31698049094304,"q25":67.31970354684661,"q75":69.29413062895587,"sd":3.6487588210918345,"median_ci95":[64.43538329052816,74.32269295643984]},"maxrss_kib":{"n":5,"median":132288,"mean":132250.4,"min":132120,"max":132328,"p95":132323.2,"q25":132212.0,"q75":132304.0,"sd":84.83395546595715,"median_ci95":[132120.0,132328.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":17.712917000608286,"mean":19.449259400244046,"min":14.995886999713548,"max":24.838895000357297,"p95":24.659466400407837,"q25":15.756845999931102,"q75":23.941752000609995,"sd":4.6290384814705625,"median_ci95":[14.995886999713548,24.838895000357297]},"cpu_ms":{"n":5,"median":15.658791999999977,"mean":18.737868999999986,"min":14.791770999999954,"max":24.579482999999904,"p95":24.382162599999948,"q25":15.06641799999997,"q75":23.59288100000012,"sd":4.904782173758452,"median_ci95":[14.791770999999954,24.579482999999904]},"terminal_bytes":{"n":5,"median":28980,"mean":28980,"min":28980,"max":28980,"p95":28980.0,"q25":28980.0,"q75":28980.0,"sd":0.0,"median_ci95":[28980.0,28980.0]},"frames":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"max_loop_delay_ms":{"n":5,"median":11.703039000276474,"mean":12.118283600211724,"min":6.752833000173268,"max":19.537272000088706,"p95":18.114020800130675,"q25":10.177258000221626,"q75":12.421016000298549,"sd":4.686712717422972,"median_ci95":[6.752833000173268,19.537272000088706]},"p95_loop_delay_ms":{"n":5,"median":10.11630920031166,"mean":10.823827620206426,"min":6.622066400195763,"max":16.714523400123646,"p95":15.502142950153932,"q25":10.013617950125985,"q75":10.652621150275076,"sd":3.6586004086552224,"median_ci95":[6.622066400195763,16.714523400123646]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":98.5428342896502,"mean":96.0317562678886,"min":88.40323702449592,"max":98.9556218166965,"p95":98.89226814178998,"q25":95.61823476643644,"q75":98.63885344216388,"sd":4.472604502243902,"median_ci95":[88.40323702449592,98.9556218166965]},"maxrss_kib":{"n":5,"median":136936,"mean":136909.6,"min":136728,"max":137024,"p95":137008.8,"q25":136912.0,"q75":136948.0,"sd":109.82167363503436,"median_ci95":[136728.0,137024.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":72.63667100050952,"mean":71.65041120006208,"min":56.918643999779306,"max":92.38675899996451,"p95":89.31697919997532,"q25":59.27212200003851,"q75":77.03786000001855,"sd":14.406946600576033,"median_ci95":[56.918643999779306,92.38675899996451]},"cpu_ms":{"n":5,"median":62.61636700000006,"mean":58.3482177999999,"min":42.89288799999991,"max":72.67676299999981,"p95":71.52398739999981,"q25":46.64218599999992,"q75":66.91288499999982,"sd":12.968965158389041,"median_ci95":[42.89288799999991,72.67676299999981]},"terminal_bytes":{"n":5,"median":52778,"mean":52778,"min":49857,"max":55699,"p95":55699.0,"q25":49857.0,"q75":55699.0,"sd":2921.0,"median_ci95":[49857.0,55699.0]},"frames":{"n":5,"median":4,"mean":4,"min":3,"max":5,"p95":5.0,"q25":3.0,"q75":5.0,"sd":1.0,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":27.318411999767704,"mean":25.02364399999351,"min":17.89182799995615,"max":34.37965200020699,"p95":32.98357120012952,"q25":18.129080000217073,"q75":27.399247999819636,"sd":7.015022317181862,"median_ci95":[17.89182799995615,34.37965200020699]},"p95_loop_delay_ms":{"n":5,"median":23.998278400058545,"mean":21.883903040052243,"min":13.821210799978868,"max":29.63284280005609,"p95":28.760686539999362,"q25":16.695121700395244,"q75":25.272061499772462,"sd":6.479327246409461,"median_ci95":[13.821210799978868,29.63284280005609]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":1.6,"min":1,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.5477225575051661,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":81.27999272044289,"mean":81.275429260685,"min":72.3660408175905,"max":92.1199775242046,"p95":90.08505341051655,"q25":78.66577828542262,"q75":81.94535695576438,"sd":7.14563733379044,"median_ci95":[72.3660408175905,92.1199775242046]},"maxrss_kib":{"n":5,"median":138688,"mean":138658.4,"min":138560,"max":138728,"p95":138723.2,"q25":138612.0,"q75":138704.0,"sd":70.06282894659621,"median_ci95":[138560.0,138728.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":80.88211599988426,"mean":76.92990300001838,"min":63.880827000502904,"max":88.08189299998048,"p95":87.24845699998696,"q25":67.88996599971142,"q75":83.91471300001285,"sd":10.497300661387145,"median_ci95":[63.880827000502904,88.08189299998048]},"cpu_ms":{"n":5,"median":67.49693400000001,"mean":68.2339126,"min":55.647538999999966,"max":83.15926999999989,"p95":82.17749779999991,"q25":56.615411000000115,"q75":78.25040900000002,"sd":12.42020542235293,"median_ci95":[55.647538999999966,83.15926999999989]},"terminal_bytes":{"n":5,"median":54189,"mean":51282.6,"min":46923,"max":54189,"p95":54189.0,"q25":46923.0,"q75":54189.0,"sd":3979.752102832537,"median_ci95":[46923.0,54189.0]},"frames":{"n":5,"median":5,"mean":4.2,"min":3,"max":5,"p95":5.0,"q25":3.0,"q75":5.0,"sd":1.0954451150103321,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":31.168679000184056,"mean":35.002562800145824,"min":27.284861000334786,"max":45.54954099978204,"p95":45.12671819986281,"q25":27.57430600024236,"q75":43.43542700018588,"sd":8.828824000222887,"median_ci95":[27.284861000334786,45.54954099978204]},"p95_loop_delay_ms":{"n":5,"median":28.19618300010915,"mean":29.606689150068625,"min":21.48785895025866,"max":38.42331200018634,"p95":38.2048339001085,"q25":22.595170299991864,"q75":37.330921499797114,"sd":7.975947151768427,"median_ci95":[21.48785895025866,38.42331200018634]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.4,"min":1,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.5477225575051661,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":88.62660935738106,"mean":88.43731514115325,"min":80.43516039909434,"max":96.74624363204344,"p95":96.2792571204167,"q25":81.96725124333766,"q75":94.41131107390973,"sd":7.257047604385816,"median_ci95":[80.43516039909434,96.74624363204344]},"maxrss_kib":{"n":5,"median":144284,"mean":144267.2,"min":144044,"max":144416,"p95":144406.4,"q25":144224.0,"q75":144368.0,"sd":145.14544429640222,"median_ci95":[144044.0,144416.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":1304.146860000401,"mean":1293.8780872003917,"min":1114.368316000764,"max":1492.2178590004478,"p95":1481.4856600003623,"q25":1120.1005370003259,"q75":1438.5568640000201,"sd":175.213053265469,"median_ci95":[1114.368316000764,1492.2178590004478]},"cpu_ms":{"n":5,"median":305.78843899999987,"mean":315.07484660000006,"min":266.61811700000015,"max":381.9620300000002,"p95":375.33444640000016,"q25":272.1815350000001,"q75":348.82411199999996,"sd":49.716788934625555,"median_ci95":[266.61811700000015,381.9620300000002]},"terminal_bytes":{"n":5,"median":146513,"mean":149438.6,"min":143773,"max":156567,"p95":156567.0,"q25":143773.0,"q75":156567.0,"sd":6602.7523654912275,"median_ci95":[143773.0,156567.0]},"frames":{"n":5,"median":19,"mean":19.8,"min":19,"max":21,"p95":21.0,"q25":19.0,"q75":21.0,"sd":1.0954451150103321,"median_ci95":[19.0,21.0]},"first_result_refresh_ms":{"n":5,"median":70.4207660000975,"mean":74.57708659967466,"min":55.179228999804764,"max":117.42528199920343,"p95":108.44972599934408,"q25":57.31265399936092,"q75":72.54750199990667,"sd":25.157998609020403,"median_ci95":[55.179228999804764,117.42528199920343]},"max_loop_delay_ms":{"n":5,"median":22.145400999870617,"mean":26.17770839999139,"min":17.518013999615505,"max":45.459763000617386,"p95":41.38686480047909,"q25":20.670091999927536,"q75":25.0952719999259,"sd":11.11927320768911,"median_ci95":[17.518013999615505,45.459763000617386]},"p95_loop_delay_ms":{"n":5,"median":11.164943600369941,"mean":10.608012640213916,"min":7.265161399955104,"max":11.974795700025389,"p95":11.893239280070672,"q25":11.068148900467344,"q75":11.567013600251803,"sd":1.9029142558731729,"median_ci95":[7.265161399955104,11.974795700025389]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":2.8,"min":1,"max":4,"p95":4.0,"q25":2.0,"q75":4.0,"sd":1.3038404810405297,"median_ci95":[1.0,4.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":24.248197671523886,"mean":24.304063002138488,"min":23.447392956948566,"max":25.596934636330847,"p95":25.362495191721095,"q25":23.803052332607052,"q75":24.42473741328208,"sd":0.8176331036104754,"median_ci95":[23.447392956948566,25.596934636330847]},"maxrss_kib":{"n":5,"median":178300,"mean":178316,"min":178172,"max":178524,"p95":178480.0,"q25":178280.0,"q75":178304.0,"sd":128.15615474880636,"median_ci95":[178172.0,178524.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":495.93905200072186,"mean":481.55950180007494,"min":408.6392440003692,"max":518.4450309998283,"p95":515.8159183998578,"q25":479.4747139994797,"q75":505.2994679999756,"sd":43.16425043146314,"median_ci95":[408.6392440003692,518.4450309998283]},"cpu_ms":{"n":5,"median":150.92470000000003,"mean":157.11691720000002,"min":133.15854299999995,"max":181.66935900000004,"p95":179.64903440000006,"q25":148.26424800000004,"q75":171.56773600000008,"sd":19.380180355563365,"median_ci95":[133.15854299999995,181.66935900000004]},"terminal_bytes":{"n":5,"median":103053,"mean":102329.8,"min":95888,"max":106621,"p95":106621.0,"q25":99466.0,"q75":106621.0,"sd":4665.028156399488,"median_ci95":[95888.0,106621.0]},"frames":{"n":5,"median":11,"mean":10.8,"min":9,"max":12,"p95":12.0,"q25":10.0,"q75":12.0,"sd":1.3038404810405297,"median_ci95":[9.0,12.0]},"first_result_refresh_ms":{"n":5,"median":61.87385499924858,"mean":70.15587819969369,"min":60.16165299934073,"max":90.49160599988681,"p95":87.79531299987866,"q25":61.242136000146274,"q75":77.01014099984604,"sd":13.308399503181942,"median_ci95":[60.16165299934073,90.49160599988681]},"max_loop_delay_ms":{"n":5,"median":20.439129999540455,"mean":26.86828140005673,"min":20.12360200034891,"max":38.01142799977242,"p95":37.53047699985473,"q25":20.16057400043792,"q75":35.606673000183946,"sd":9.1151965200213,"median_ci95":[20.12360200034891,38.01142799977242]},"p95_loop_delay_ms":{"n":5,"median":12.48775839978404,"mean":11.977736019844075,"min":8.759860399704834,"max":16.293060000061814,"p95":15.641133609988172,"q25":9.314573249976087,"q75":13.033428049693603,"sd":3.059566512991144,"median_ci95":[8.759860399704834,16.293060000061814]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.6,"min":2,"max":4,"p95":3.8,"q25":2.0,"q75":3.0,"sd":0.8944271909999159,"median_ci95":[2.0,4.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":32.58584312569833,"mean":32.69174865781593,"min":28.597872317161652,"max":37.889247064694466,"p95":37.10213252741582,"q25":30.43210640322399,"q75":33.953674378301216,"sd":3.5525859879307125,"median_ci95":[28.597872317161652,37.889247064694466]},"maxrss_kib":{"n":5,"median":204164,"mean":204157.6,"min":204120,"max":204188,"p95":204188.0,"q25":204128.0,"q75":204188.0,"sd":32.323366161339074,"median_ci95":[204120.0,204188.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":131.85357000020304,"mean":150.92388760003814,"min":128.00091700046323,"max":187.61876899952767,"p95":185.57237759960117,"q25":129.75937000010163,"q75":177.38681199989514,"sd":29.085550916308637,"median_ci95":[128.00091700046323,187.61876899952767]},"cpu_ms":{"n":5,"median":109.26839999999993,"mean":111.77738839999999,"min":93.40466800000003,"max":132.87090899999998,"p95":129.98178019999997,"q25":104.91770000000011,"q75":118.42526499999994,"sd":14.832717866463764,"median_ci95":[93.40466800000003,132.87090899999998]},"terminal_bytes":{"n":5,"median":74784,"mean":76441,"min":74784,"max":80745,"p95":80017.6,"q25":74784.0,"q75":77108.0,"sd":2607.9806364311835,"median_ci95":[74784.0,80745.0]},"frames":{"n":5,"median":6,"mean":6.2,"min":6,"max":7,"p95":6.8,"q25":6.0,"q75":6.0,"sd":0.4472135954999579,"median_ci95":[6.0,7.0]},"first_result_refresh_ms":{"n":5,"median":100.32872200008569,"mean":96.86682440005825,"min":87.62216400009493,"max":105.87637200023892,"p95":105.07194900019385,"q25":88.65260699985811,"q75":101.8542570000136,"sd":8.230557093849955,"median_ci95":[87.62216400009493,105.87637200023892]},"max_loop_delay_ms":{"n":5,"median":38.58271199998853,"mean":36.438913800084265,"min":29.577039999931003,"max":42.54123300062929,"p95":42.209583400399424,"q25":30.61059900039254,"q75":40.88298499947996,"sd":5.971568148863557,"median_ci95":[29.577039999931003,42.54123300062929]},"p95_loop_delay_ms":{"n":5,"median":33.3167549997779,"mean":32.266634660063566,"min":27.289430800210532,"max":38.25630690036632,"p95":37.61287572024229,"q25":27.431529600216884,"q75":35.0391509997462,"sd":4.817067892666484,"median_ci95":[27.289430800210532,38.25630690036632]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":3.4,"min":3,"max":4,"p95":4.0,"q25":3.0,"q75":4.0,"sd":0.5477225575051661,"median_ci95":[3.0,4.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":70.8396958837415,"mean":74.92825300750499,"min":66.76103125415544,"max":85.36532593716066,"p95":84.46337810332203,"q25":70.81962519449986,"q75":80.85558676796747,"sd":7.816111723154488,"median_ci95":[66.76103125415544,85.36532593716066]},"maxrss_kib":{"n":5,"median":248052,"mean":248059.2,"min":248004,"max":248160,"p95":248139.2,"q25":248024.0,"q75":248056.0,"sd":60.2262401283693,"median_ci95":[248004.0,248160.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":170.5888180003967,"mean":203.3990238001934,"min":127.43654000041715,"max":338.3936840000388,"p95":317.71899579998717,"q25":145.55583400033356,"q75":235.02024299978075,"sd":85.7556163496289,"median_ci95":[127.43654000041715,338.3936840000388]},"cpu_ms":{"n":5,"median":108.76359499999965,"mean":113.98845439999995,"min":100.46807800000002,"max":134.51104999999995,"p95":132.65372659999997,"q25":100.97511600000009,"q75":125.22443300000008,"sd":15.222276893759668,"median_ci95":[100.46807800000002,134.51104999999995]},"terminal_bytes":{"n":5,"median":80258,"mean":81277.4,"min":79404,"max":86272,"p95":85227.4,"q25":79404.0,"q75":81049.0,"sd":2874.744649529763,"median_ci95":[79404.0,86272.0]},"frames":{"n":5,"median":6,"mean":6,"min":5,"max":7,"p95":7.0,"q25":5.0,"q75":7.0,"sd":1.0,"median_ci95":[5.0,7.0]},"first_result_refresh_ms":{"n":5,"median":81.71218300049077,"mean":87.01161259996297,"min":70.22341300034896,"max":106.43646500011528,"p95":104.86928379996243,"q25":78.08544299950881,"q75":98.60055899935105,"sd":15.010268760317942,"median_ci95":[70.22341300034896,106.43646500011528]},"max_loop_delay_ms":{"n":5,"median":32.68035999928543,"mean":38.42249559958873,"min":28.939912999812805,"max":53.77571800010628,"p95":52.36390059992118,"q25":29.99985599955835,"q75":46.71663099918078,"sd":11.161837572196205,"median_ci95":[28.939912999812805,53.77571800010628]},"p95_loop_delay_ms":{"n":5,"median":17.39353979948644,"mean":21.81589325995445,"min":14.719185800568077,"max":38.13322794973826,"p95":34.995874439773594,"q25":16.387052350064547,"q75":22.446460399914926,"sd":9.566161806267155,"median_ci95":[14.719185800568077,38.13322794973826]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":1,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.7071067811865476,"median_ci95":[1.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":59.19210718709902,"mean":62.01799849566054,"min":39.749870154191335,"max":86.03188862887703,"p95":84.5930573226248,"q25":46.278394410519404,"q75":78.83773209761591,"sd":20.069633130975998,"median_ci95":[39.749870154191335,86.03188862887703]},"maxrss_kib":{"n":5,"median":253688,"mean":253805.6,"min":253568,"max":254196,"p95":254139.2,"q25":253664.0,"q75":253912.0,"sd":252.02539554576637,"median_ci95":[253568.0,254196.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":58.456308000131685,"mean":59.73552400027984,"min":51.32497100021283,"max":73.50539000071876,"p95":70.58960840058717,"q25":56.46446900027513,"q75":58.92648200006079,"sd":8.266458655058848,"median_ci95":[51.32497100021283,73.50539000071876]},"cpu_ms":{"n":5,"median":44.45485900000001,"mean":39.9814482,"min":28.622862000000026,"max":46.014463000000006,"p95":45.7720146,"q25":36.01283599999999,"q75":44.802220999999975,"sd":7.490258430264843,"median_ci95":[28.622862000000026,46.014463000000006]},"terminal_bytes":{"n":5,"median":58401,"mean":56940.6,"min":54750,"max":58401,"p95":58401.0,"q25":54750.0,"q75":58401.0,"sd":1999.7350574513614,"median_ci95":[54750.0,58401.0]},"frames":{"n":5,"median":6,"mean":5.6,"min":5,"max":6,"p95":6.0,"q25":5.0,"q75":6.0,"sd":0.5477225575051661,"median_ci95":[5.0,6.0]},"first_result_refresh_ms":{"n":5,"median":27.19712599991908,"mean":24.233311600255547,"min":16.726511999877403,"max":27.82006800043746,"p95":27.767337200384645,"q25":21.866438000870403,"q75":27.55641400017339,"sd":4.8643128421685216,"median_ci95":[16.726511999877403,27.82006800043746]},"max_loop_delay_ms":{"n":5,"median":21.97344699936366,"mean":20.619112599997607,"min":15.432170999811204,"max":22.673605000018142,"p95":22.622961800079793,"q25":20.59595100046863,"q75":22.420389000326395,"sd":3.00851528917782,"median_ci95":[15.432170999811204,22.673605000018142]},"p95_loop_delay_ms":{"n":5,"median":17.3976578501606,"mean":16.8962132100205,"min":12.781892999664702,"max":19.284393300149524,"p95":19.156390940024714,"q25":16.37274040060219,"q75":18.644381499525473,"sd":2.559912001123629,"median_ci95":[12.781892999664702,19.284393300149524]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.8,"min":0,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":63.7796416713394,"mean":66.93113949165382,"min":55.767906814562714,"max":78.71599246380109,"p95":78.0610386756727,"q25":60.95093298540676,"q75":75.44122352315918,"sd":9.767508151648656,"median_ci95":[55.767906814562714,78.71599246380109]},"maxrss_kib":{"n":5,"median":121976,"mean":121962.4,"min":121764,"max":122204,"p95":122163.2,"q25":121868.0,"q75":122000.0,"sd":164.5016717240284,"median_ci95":[121764.0,122204.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":121.14411199945607,"mean":122.10441499973967,"min":106.52534800010471,"max":139.13485299963213,"p95":136.1260523995952,"q25":119.62691200005793,"q75":124.09084999944753,"sd":11.659216033048128,"median_ci95":[106.52534800010471,139.13485299963213]},"cpu_ms":{"n":5,"median":89.65810099999993,"mean":89.7937838,"min":68.189585,"max":107.95890800000002,"p95":105.31536120000001,"q25":88.42115100000004,"q75":94.74117399999999,"sd":14.344792987424528,"median_ci95":[68.189585,107.95890800000002]},"terminal_bytes":{"n":5,"median":77170,"mean":74037.2,"min":64312,"max":83599,"p95":82313.2,"q25":67935.0,"q75":77170.0,"sd":7792.195627677735,"median_ci95":[64312.0,83599.0]},"frames":{"n":5,"median":8,"mean":7.6,"min":6,"max":9,"p95":8.8,"q25":7.0,"q75":8.0,"sd":1.140175425099138,"median_ci95":[6.0,9.0]},"first_result_refresh_ms":{"n":5,"median":45.16643100032525,"mean":46.02466900014406,"min":39.92130099959468,"max":53.80054900069808,"p95":52.508777400544204,"q25":43.8933730001736,"q75":47.34169099992869,"sd":5.116858234915396,"median_ci95":[39.92130099959468,53.80054900069808]},"max_loop_delay_ms":{"n":5,"median":14.688317000145615,"mean":14.524593200003435,"min":12.899714000122911,"max":16.614911000142456,"p95":16.297199400032696,"q25":13.393671000012544,"q75":15.026352999593653,"sd":1.4634902050776133,"median_ci95":[12.899714000122911,16.614911000142456]},"p95_loop_delay_ms":{"n":5,"median":10.794901250046676,"mean":10.93297314986557,"min":7.829161599347559,"max":14.317227499868748,"p95":13.969866439874748,"q25":9.14315320016612,"q75":12.580422199898747,"sd":2.599203306830836,"median_ci95":[7.829161599347559,14.317227499868748]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":74.9481028148219,"mean":73.17805689159144,"min":64.01254375618934,"max":77.59300108671223,"p95":77.34404790626603,"q25":72.98840161575252,"q75":76.3482351844812,"sd":5.401791956933524,"median_ci95":[64.01254375618934,77.59300108671223]},"maxrss_kib":{"n":5,"median":132156,"mean":132171.2,"min":131800,"max":132644,"p95":132556.8,"q25":132048.0,"q75":132208.0,"sd":307.4462554658944,"median_ci95":[131800.0,132644.0]}}},{"suite":"render","scenario":"scroll_30","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":521.6775580001922,"mean":519.5071895997899,"min":507.3600779996923,"max":531.2608859994725,"p95":529.5730399995591,"q25":514.4157699996867,"q75":522.8216559999055,"sd":9.045999659192077,"median_ci95":[507.3600779996923,531.2608859994725]},"cpu_ms":{"n":5,"median":343.09004300000004,"mean":342.0371702,"min":330.64784699999996,"max":347.83586600000007,"p95":347.74414220000006,"q25":341.23484800000006,"q75":347.37724699999995,"sd":6.957194804849295,"median_ci95":[330.64784699999996,347.83586600000007]},"terminal_bytes":{"n":5,"median":910953,"mean":910953,"min":910953,"max":910953,"p95":910953.0,"q25":910953.0,"q75":910953.0,"sd":0.0,"median_ci95":[910953.0,910953.0]},"frames":{"n":5,"median":60,"mean":60,"min":60,"max":60,"p95":60.0,"q25":60.0,"q75":60.0,"sd":0.0,"median_ci95":[60.0,60.0]},"max_loop_delay_ms":{"n":5,"median":12.319642000074962,"mean":12.411798799912502,"min":10.575596999951811,"max":14.05785500002821,"p95":13.907656599913023,"q25":11.799037000055248,"q75":13.306862999452276,"sd":1.3477989357222964,"median_ci95":[10.575596999951811,14.05785500002821]},"p95_loop_delay_ms":{"n":5,"median":10.894065649672482,"mean":10.88020337004309,"min":9.4081319003817,"max":11.96988669955317,"p95":11.8249254397233,"q25":10.883852200204272,"q75":11.24508040040382,"sd":0.9337752532657617,"median_ci95":[9.4081319003817,11.96988669955317]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":66.4427808246839,"mean":65.84656833457247,"min":64.27638231234656,"max":67.25693699538714,"p95":67.14083154071231,"q25":64.58033181843179,"q75":66.67640972201299,"sd":1.3324868554965148,"median_ci95":[64.27638231234656,67.25693699538714]},"maxrss_kib":{"n":5,"median":134096,"mean":134142.4,"min":133848,"max":134564,"p95":134502.4,"q25":133948.0,"q75":134256.0,"sd":281.6323845014987,"median_ci95":[133848.0,134564.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":20.943353000802745,"mean":20.97074720022647,"min":14.144687000225531,"max":25.52054199986742,"p95":25.231312199866807,"q25":20.170761000372295,"q75":24.074392999864358,"sd":4.403665410331653,"median_ci95":[14.144687000225531,25.52054199986742]},"cpu_ms":{"n":5,"median":20.340723999999977,"mean":20.545207199999993,"min":14.12591299999999,"max":25.25361299999995,"p95":24.796271999999963,"q25":20.03887800000004,"q75":22.966908000000007,"sd":4.169509581659529,"median_ci95":[14.12591299999999,25.25361299999995]},"terminal_bytes":{"n":5,"median":28980,"mean":28980,"min":28980,"max":28980,"p95":28980.0,"q25":28980.0,"q75":28980.0,"sd":0.0,"median_ci95":[28980.0,28980.0]},"frames":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"max_loop_delay_ms":{"n":5,"median":16.49648399972648,"mean":17.71712199981266,"min":10.87127600032545,"max":22.85609799957456,"p95":22.809024199632404,"q25":15.741022999573032,"q75":22.620728999863786,"sd":5.067419653328918,"median_ci95":[10.87127600032545,22.85609799957456]},"p95_loop_delay_ms":{"n":5,"median":14.129129399834705,"mean":15.17055189985512,"min":9.311362100215769,"max":19.573626699611843,"p95":19.527043789676092,"q25":13.497929149680196,"q75":19.34071214993309,"sd":4.329827854537995,"median_ci95":[9.311362100215769,19.573626699611843]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.4,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":98.95406218304903,"mean":98.13796325965129,"min":95.39973863569233,"max":99.86727171675668,"p95":99.76305086403089,"q25":97.1225763096307,"q75":99.34616745312772,"sd":1.8469682804022713,"median_ci95":[95.39973863569233,99.86727171675668]},"maxrss_kib":{"n":5,"median":138704,"mean":138750.4,"min":138456,"max":139172,"p95":139110.4,"q25":138556.0,"q75":138864.0,"sd":281.6323845014987,"median_ci95":[138456.0,139172.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":63.629274999584595,"mean":67.49749319969851,"min":56.617401000039536,"max":84.95923899954505,"p95":82.17044819957664,"q25":61.26626599962037,"q75":71.015284999703,"sd":11.061816490323858,"median_ci95":[56.617401000039536,84.95923899954505]},"cpu_ms":{"n":5,"median":47.4909859999999,"mean":54.62036919999998,"min":44.318521,"max":67.37396600000001,"p95":67.19934520000002,"q25":47.41751099999991,"q75":66.50086200000005,"sd":11.320751829112533,"median_ci95":[44.318521,67.37396600000001]},"terminal_bytes":{"n":5,"median":49857,"mean":52193.8,"min":49857,"max":55699,"p95":55699.0,"q25":49857.0,"q75":55699.0,"sd":3199.7951809451806,"median_ci95":[49857.0,55699.0]},"frames":{"n":5,"median":3,"mean":3.8,"min":3,"max":5,"p95":5.0,"q25":3.0,"q75":5.0,"sd":1.0954451150103321,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":22.234745999521692,"mean":21.706392999949458,"min":18.47148999979254,"max":25.462647000604193,"p95":25.004589200507326,"q25":19.190723999709007,"q75":23.172358000119857,"sd":2.8866434803466507,"median_ci95":[18.47148999979254,25.462647000604193]},"p95_loop_delay_ms":{"n":5,"median":20.829187799627103,"mean":20.211153749960427,"min":16.425084099837473,"max":24.826310950284096,"p95":24.1503179202482,"q25":17.528840099948862,"q75":21.446345800104606,"sd":3.344266413714923,"median_ci95":[16.425084099837473,24.826310950284096]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":1.6,"min":1,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.5477225575051661,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":79.30151775530945,"mean":80.77440622580743,"min":69.65114878377813,"max":93.6430262869158,"p95":91.69053055104413,"q25":77.39579069547625,"q75":83.8805476075575,"sd":8.83969450872826,"median_ci95":[69.65114878377813,93.6430262869158]},"maxrss_kib":{"n":5,"median":140368,"mean":140452,"min":140152,"max":140964,"p95":140876.8,"q25":140248.0,"q75":140528.0,"sd":318.8228348158268,"median_ci95":[140152.0,140964.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":82.22362600008637,"mean":84.1528777998974,"min":70.3123589992174,"max":102.62864699961938,"p95":99.0548117997605,"q25":80.84028600023885,"q75":84.759471000325,"sd":11.704456848167029,"median_ci95":[70.3123589992174,102.62864699961938]},"cpu_ms":{"n":5,"median":78.84756300000006,"mean":74.83737180000001,"min":53.637175999999954,"max":82.18784700000015,"p95":82.1305970000001,"q25":77.612676,"q75":81.90159699999988,"sd":12.012129413259393,"median_ci95":[53.637175999999954,82.18784700000015]},"terminal_bytes":{"n":5,"median":50570,"mean":50558.8,"min":46923,"max":54189,"p95":54189.0,"q25":46923.0,"q75":54189.0,"sd":3633.0053949863604,"median_ci95":[46923.0,54189.0]},"frames":{"n":5,"median":4,"mean":4,"min":3,"max":5,"p95":5.0,"q25":3.0,"q75":5.0,"sd":1.0,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":43.9962640003796,"mean":38.65894580005261,"min":25.0613079998584,"max":44.970103000305244,"p95":44.80261540022184,"q25":35.13438899983157,"q75":44.13266499988822,"sd":8.596474961281313,"median_ci95":[25.0613079998584,44.970103000305244]},"p95_loop_delay_ms":{"n":5,"median":36.38528474982195,"mean":32.27381375008008,"min":19.071213999923195,"max":37.166142250152916,"p95":37.07241875019463,"q25":32.048903000140854,"q75":36.69752475036148,"sd":7.661062523511912,"median_ci95":[19.071213999923195,37.166142250152916]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.2,"min":1,"max":2,"p95":1.7999999999999998,"q25":1.0,"q75":1.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":96.00742382303136,"mean":89.13878202201381,"min":76.28413662041542,"max":99.60834979463671,"p95":99.07987472709443,"q25":76.82802541506027,"q75":96.96597445692531,"sd":11.563430152703935,"median_ci95":[76.28413662041542,99.60834979463671]},"maxrss_kib":{"n":5,"median":144028,"mean":143920.8,"min":143464,"max":144232,"p95":144200.0,"q25":143808.0,"q75":144072.0,"sd":296.89594136666807,"median_ci95":[143464.0,144232.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":524.7019909993469,"mean":509.48417439976765,"min":441.5056010002445,"max":594.5890539996981,"p95":583.6760663996756,"q25":446.600109999963,"q75":540.0241159995858,"sd":65.15865733647854,"median_ci95":[441.5056010002445,594.5890539996981]},"cpu_ms":{"n":5,"median":417.79750699999994,"mean":405.9789926,"min":344.5636790000002,"max":486.78744399999994,"p95":476.2667916,"q25":346.5621510000001,"q75":434.1841820000001,"sd":60.76063203194325,"median_ci95":[344.5636790000002,486.78744399999994]},"terminal_bytes":{"n":5,"median":236866,"mean":235743.6,"min":214770,"max":262586,"p95":258728.0,"q25":221200.0,"q75":243296.0,"sd":18909.132470845932,"median_ci95":[214770.0,262586.0]},"frames":{"n":5,"median":30,"mean":30,"min":27,"max":34,"p95":33.4,"q25":28.0,"q75":31.0,"sd":2.7386127875258306,"median_ci95":[27.0,34.0]},"first_result_refresh_ms":{"n":5,"median":62.422492999758106,"mean":65.10421639977721,"min":60.6571950002035,"max":71.86092699976143,"p95":71.39037359975191,"q25":61.07230699944921,"q75":69.50815999971383,"sd":5.202686577584019,"median_ci95":[60.6571950002035,71.86092699976143]},"max_loop_delay_ms":{"n":5,"median":21.228510999317223,"mean":23.2510437999008,"min":17.875192000356037,"max":28.63345300022047,"p95":28.47268140005326,"q25":20.68846800022584,"q75":27.829594999384426,"sd":4.7299755843757705,"median_ci95":[17.875192000356037,28.63345300022047]},"p95_loop_delay_ms":{"n":5,"median":10.39660960079345,"mean":10.56906333004917,"min":8.240198849734949,"max":12.557363800278823,"p95":12.441894360163122,"q25":9.671127799738308,"q75":11.980016599700317,"sd":1.746694461121693,"median_ci95":[8.240198849734949,12.557363800278823]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":1.8,"min":1,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[1.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":79.62567593926283,"mean":79.50782126352915,"min":77.60010426330365,"max":81.86956028293234,"p95":81.57582572717189,"q25":78.04287832801681,"q75":80.40088750413011,"sd":1.7446138675737004,"median_ci95":[77.60010426330365,81.86956028293234]},"maxrss_kib":{"n":5,"median":184964,"mean":184984.8,"min":184392,"max":185752,"p95":185624.0,"q25":184704.0,"q75":185112.0,"sd":508.78993700740585,"median_ci95":[184392.0,185752.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":146.18414400047186,"mean":150.83335360013734,"min":134.00775399986742,"max":183.91392699959397,"p95":177.03652519976458,"q25":140.53402500030643,"q75":149.52691800044704,"sd":19.40891052989899,"median_ci95":[134.00775399986742,183.91392699959397]},"cpu_ms":{"n":5,"median":131.22753900000018,"mean":137.74163600000003,"min":122.39907100000002,"max":167.573333,"p95":161.59635039999998,"q25":129.819817,"q75":137.68841999999992,"sd":17.539355422989868,"median_ci95":[122.39907100000002,167.573333]},"terminal_bytes":{"n":5,"median":88696,"mean":89409.6,"min":82322,"max":95070,"p95":94508.8,"q25":88696.0,"q75":92264.0,"sd":4781.219802519018,"median_ci95":[82322.0,95070.0]},"frames":{"n":5,"median":7,"mean":7.2,"min":6,"max":8,"p95":8.0,"q25":7.0,"q75":8.0,"sd":0.8366600265340756,"median_ci95":[6.0,8.0]},"first_result_refresh_ms":{"n":5,"median":70.17108099989855,"mean":73.31382960001065,"min":62.59115099965129,"max":95.6466180005009,"p95":90.77860740035248,"q25":66.85373300024366,"q75":71.30656499975885,"sd":12.936074579687299,"median_ci95":[62.59115099965129,95.6466180005009]},"max_loop_delay_ms":{"n":5,"median":23.896716999952332,"mean":24.8811166001542,"min":19.812820999613905,"max":34.71851400001469,"p95":32.58976060016721,"q25":21.902784000412794,"q75":24.07474700077728,"sd":5.765235196321079,"median_ci95":[19.812820999613905,34.71851400001469]},"p95_loop_delay_ms":{"n":5,"median":21.559074400165628,"mean":23.90170290998867,"min":19.6603504999257,"max":33.61514924983567,"p95":31.516483079849422,"q25":21.552122000111922,"q75":23.12181839990444,"sd":5.5667937068746385,"median_ci95":[19.6603504999257,33.61514924983567]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":91.33730500409784,"mean":91.33596375610784,"min":89.76865438947783,"max":92.37607547333604,"p95":92.31739993438794,"q25":91.11508613503203,"q75":92.08269777859547,"sd":1.0179257656897684,"median_ci95":[89.76865438947783,92.37607547333604]},"maxrss_kib":{"n":5,"median":217528,"mean":217540.8,"min":216720,"max":218340,"p95":218198.4,"q25":217484.0,"q75":217632.0,"sd":575.3565850844153,"median_ci95":[216720.0,218340.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":133.8103999996747,"mean":135.37846859999263,"min":109.64808500011713,"max":159.96967899991432,"p95":157.77439159992355,"q25":124.47093700029654,"q75":148.99324199996045,"sd":19.834158720475777,"median_ci95":[109.64808500011713,159.96967899991432]},"cpu_ms":{"n":5,"median":103.11262500000007,"mean":106.1641170000001,"min":78.89178100000005,"max":129.98039400000016,"p95":129.79710140000014,"q25":89.77185400000009,"q75":129.06393100000014,"sd":22.985945336006207,"median_ci95":[78.89178100000005,129.98039400000016]},"terminal_bytes":{"n":5,"median":74784,"mean":75143.2,"min":73424,"max":77042,"p95":77042.0,"q25":73424.0,"q75":77042.0,"sd":1820.1102164429494,"median_ci95":[73424.0,77042.0]},"frames":{"n":5,"median":6,"mean":5.6,"min":5,"max":6,"p95":6.0,"q25":5.0,"q75":6.0,"sd":0.5477225575051661,"median_ci95":[5.0,6.0]},"first_result_refresh_ms":{"n":5,"median":86.83794999979,"mean":97.35483580006985,"min":76.78620800015779,"max":126.18422500054294,"p95":123.47702780043619,"q25":84.31755699984933,"q75":112.6482390000092,"sd":21.027754505238978,"median_ci95":[76.78620800015779,126.18422500054294]},"max_loop_delay_ms":{"n":5,"median":29.565119999570015,"mean":38.013075799899525,"min":23.144181000243407,"max":65.33569599934708,"p95":61.10607579950738,"q25":27.832787000188546,"q75":44.187595000148576,"sd":17.18095262005709,"median_ci95":[23.144181000243407,65.33569599934708]},"p95_loop_delay_ms":{"n":5,"median":26.701826049857114,"mean":31.479356250010813,"min":20.745131400071834,"max":44.26549519973375,"p95":43.366062959858,"q25":25.915994600036353,"q75":39.76833400035501,"sd":10.014887320611223,"median_ci95":[20.745131400071834,44.26549519973375]},"loop_delays_over_16_7_ms":{"n":5,"median":3,"mean":3.2,"min":3,"max":4,"p95":3.8,"q25":3.0,"q75":3.0,"sd":0.4472135954999579,"median_ci95":[3.0,4.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":77.05875253362275,"mean":77.80172836746905,"min":71.94998526414372,"max":86.62401681281248,"p95":85.54984229599141,"q25":72.12274299805924,"q75":81.2531442287071,"sd":6.260807258712964,"median_ci95":[71.94998526414372,86.62401681281248]},"maxrss_kib":{"n":5,"median":260572,"mean":260394.4,"min":259420,"max":260980,"p95":260906.4,"q25":260388.0,"q75":260612.0,"sd":585.5158409471088,"median_ci95":[259420.0,260980.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"timer500","metrics":{"wall_ms":{"n":5,"median":147.3490539992781,"mean":146.99396100022568,"min":130.86365800063504,"max":166.68794700035505,"p95":163.4388262003995,"q25":139.62680300028296,"q75":150.44234300057724,"sd":13.36349697764716,"median_ci95":[130.86365800063504,166.68794700035505]},"cpu_ms":{"n":5,"median":122.460542,"mean":121.03836500000003,"min":102.36697799999983,"max":142.88542199999998,"p95":139.84134459999996,"q25":109.81384800000038,"q75":127.66503499999993,"sd":15.794300527852855,"median_ci95":[102.36697799999983,142.88542199999998]},"terminal_bytes":{"n":5,"median":85418,"mean":85751.2,"min":80216,"max":91453,"p95":90412.6,"q25":85418.0,"q75":86251.0,"sd":3988.1326081262646,"median_ci95":[80216.0,91453.0]},"frames":{"n":5,"median":6,"mean":6.4,"min":6,"max":7,"p95":7.0,"q25":6.0,"q75":7.0,"sd":0.5477225575051661,"median_ci95":[6.0,7.0]},"first_result_refresh_ms":{"n":5,"median":73.64201299969864,"mean":84.1620797995347,"min":65.63645499954873,"max":106.51781499927893,"p95":105.8995083993068,"q25":71.5878339997289,"q75":103.42628199941828,"sd":19.254029577311112,"median_ci95":[65.63645499954873,106.51781499927893]},"max_loop_delay_ms":{"n":5,"median":29.444021000126668,"mean":39.788837200030684,"min":26.049313000039547,"max":65.88849599949754,"p95":62.657490999590664,"q25":27.828885000526498,"q75":49.733470999963174,"sd":17.456504052427785,"median_ci95":[26.049313000039547,65.88849599949754]},"p95_loop_delay_ms":{"n":5,"median":23.157934249520622,"mean":26.94073094976374,"min":19.09884324970335,"max":36.11776010013271,"p95":35.69451951004338,"q25":22.327559999775985,"q75":34.001557149686036,"sd":7.6019607740662964,"median_ci95":[19.09884324970335,36.11776010013271]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":81.40031560099415,"mean":82.12682305164152,"min":78.22414531580883,"max":86.64123150775396,"p95":86.45704685808681,"q25":78.64811457423245,"q75":85.7203082594182,"sd":3.9100236221644935,"median_ci95":[78.22414531580883,86.64123150775396]},"maxrss_kib":{"n":5,"median":263332,"mean":263381.6,"min":260980,"max":265220,"p95":265050.4,"q25":263004.0,"q75":264372.0,"sd":1602.6018844366806,"median_ci95":[260980.0,265220.0]}}},{"suite":"render","scenario":"render_1000_6_normal","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":195.11286099987046,"mean":184.384807600145,"min":167.52238900062366,"max":196.09404699986044,"p95":195.9082194000075,"q25":168.02983199977461,"q75":195.1649090005958,"sd":15.167682677203896,"median_ci95":[167.52238900062366,196.09404699986044]},"cpu_ms":{"n":5,"median":58.72666600000004,"mean":56.51768020000001,"min":48.150556999999985,"max":65.13492500000001,"p95":64.59277900000001,"q25":48.152058,"q75":62.42419500000002,"sd":7.968937017059735,"median_ci95":[48.150556999999985,65.13492500000001]},"terminal_bytes":{"n":5,"median":71643,"mean":71643,"min":71643,"max":71643,"p95":71643.0,"q25":71643.0,"q75":71643.0,"sd":0.0,"median_ci95":[71643.0,71643.0]},"frames":{"n":5,"median":8,"mean":8,"min":8,"max":8,"p95":8.0,"q25":8.0,"q75":8.0,"sd":0.0,"median_ci95":[8.0,8.0]},"first_result_refresh_ms":{"n":5,"median":19.856402999721467,"mean":19.45951640009298,"min":17.679745000350522,"max":20.613496999430936,"p95":20.596436399682716,"q25":18.619743000272138,"q75":20.528194000689837,"sd":1.275153677897138,"median_ci95":[17.679745000350522,20.613496999430936]},"max_loop_delay_ms":{"n":5,"median":17.476085000562307,"mean":17.162485199987714,"min":14.34302599966031,"max":19.302532000547217,"p95":19.093652400370047,"q25":16.432648999507364,"q75":18.258133999661368,"sd":1.894769279989924,"median_ci95":[14.34302599966031,19.302532000547217]},"p95_loop_delay_ms":{"n":5,"median":8.409323600353666,"mean":8.899700480087624,"min":6.560191000535267,"max":12.072909999569667,"p95":11.7709624796771,"q25":6.8929053998726815,"q75":10.563172400106838,"sd":2.3757839793577467,"median_ci95":[6.560191000535267,12.072909999569667]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":0.6,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":30.098818549966847,"mean":30.82928704339487,"min":24.555593979879596,"max":38.76390532848202,"p95":37.40819587977486,"q25":28.74275927369966,"q75":31.985358084946228,"sd":5.2091523924711804,"median_ci95":[24.555593979879596,38.76390532848202]},"maxrss_kib":{"n":5,"median":122044,"mean":122057.6,"min":121956,"max":122224,"p95":122193.6,"q25":121992.0,"q75":122072.0,"sd":103.32860204222256,"median_ci95":[121956.0,122224.0]}}},{"suite":"render","scenario":"render_10000_6_normal","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":179.84524799976498,"mean":272.7147427998716,"min":175.8558269993955,"max":500.4223699997965,"p95":466.04829839980084,"q25":178.89825700058282,"q75":328.5520119998182,"sd":142.98294457637786,"median_ci95":[175.8558269993955,500.4223699997965]},"cpu_ms":{"n":5,"median":67.64431599999998,"mean":82.98778999999999,"min":54.33589099999997,"max":137.85333099999997,"p95":129.4354522,"q25":59.34147500000003,"q75":95.76393700000003,"sd":34.6011533231278,"median_ci95":[54.33589099999997,137.85333099999997]},"terminal_bytes":{"n":5,"median":71643,"mean":78398.8,"min":71643,"max":91747,"p95":90461.2,"q25":71643.0,"q75":85318.0,"sd":9525.915609535914,"median_ci95":[71643.0,91747.0]},"frames":{"n":5,"median":8,"mean":9.4,"min":8,"max":12,"p95":11.8,"q25":8.0,"q75":11.0,"sd":1.949358868961793,"median_ci95":[8.0,12.0]},"first_result_refresh_ms":{"n":5,"median":45.8620150002389,"mean":49.10718640003324,"min":40.34605099968758,"max":67.75085699973715,"p95":64.12692639987654,"q25":41.9458050000685,"q75":49.63120400043408,"sd":11.027636446092924,"median_ci95":[40.34605099968758,67.75085699973715]},"max_loop_delay_ms":{"n":5,"median":13.416883000099913,"mean":14.575213200005235,"min":11.076664000138406,"max":22.864257999681286,"p95":21.087915399693884,"q25":11.535716000362298,"q75":13.982544999744276,"sd":4.792693341670629,"median_ci95":[11.076664000138406,22.864257999681286]},"p95_loop_delay_ms":{"n":5,"median":9.615159100321751,"mean":10.392900590022682,"min":9.060316999803035,"max":12.37913169981763,"p95":12.174476489863055,"q25":9.554039500126237,"q75":11.355855650044758,"sd":1.4103851643262693,"median_ci95":[9.060316999803035,12.37913169981763]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.4,"min":0,"max":2,"p95":1.5999999999999996,"q25":0.0,"q75":0.0,"sd":0.8944271909999159,"median_ci95":[0.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":30.897975874400082,"mean":31.67513369285363,"min":27.54739581287224,"max":37.61251228616748,"p95":36.72411303317109,"q25":29.147268469642796,"q75":33.170516021185556,"sd":3.9217639441826577,"median_ci95":[27.54739581287224,37.61251228616748]},"maxrss_kib":{"n":5,"median":130040,"mean":130009.6,"min":129904,"max":130080,"p95":130074.4,"q25":129972.0,"q75":130052.0,"sd":71.1392999684422,"median_ci95":[129904.0,130080.0]}}},{"suite":"render","scenario":"scroll_30","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":536.8587869998009,"mean":535.9610510000493,"min":508.5266340001908,"max":553.1907149998005,"p95":552.5032893998286,"q25":531.4755320005133,"q75":549.753586999941,"sd":17.75294635824717,"median_ci95":[508.5266340001908,553.1907149998005]},"cpu_ms":{"n":5,"median":367.77973799999995,"mean":367.134758,"min":348.939284,"max":387.81223199999994,"p95":383.91125519999997,"q25":362.835188,"q75":368.307348,"sd":13.954483811653065,"median_ci95":[348.939284,387.81223199999994]},"terminal_bytes":{"n":5,"median":910953,"mean":912624.8,"min":910953,"max":919312,"p95":917640.2,"q25":910953.0,"q75":910953.0,"sd":3738.258444784148,"median_ci95":[910953.0,919312.0]},"frames":{"n":5,"median":60,"mean":60.2,"min":60,"max":61,"p95":60.8,"q25":60.0,"q75":60.0,"sd":0.4472135954999579,"median_ci95":[60.0,61.0]},"max_loop_delay_ms":{"n":5,"median":16.327821999875596,"mean":17.165739400043094,"min":12.682065000371948,"max":26.228938999447564,"p95":24.395732199554914,"q25":13.526966000536047,"q75":17.062904999984312,"sd":5.389765195191965,"median_ci95":[12.682065000371948,26.228938999447564]},"p95_loop_delay_ms":{"n":5,"median":12.145926750345096,"mean":11.996390600133962,"min":10.494543100248844,"max":13.056205600441896,"p95":12.921725230289663,"q25":11.901473799953235,"q75":12.383803749680736,"sd":0.9434263293187166,"median_ci95":[10.494543100248844,13.056205600441896]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.4,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":68.26940586225324,"mean":68.52042802793962,"min":66.57872918205663,"max":72.23728872302945,"p95":71.51337113029962,"q25":66.8990156129785,"q75":68.61770075938028,"sd":2.252037975154107,"median_ci95":[66.57872918205663,72.23728872302945]},"maxrss_kib":{"n":5,"median":132100,"mean":132108.8,"min":131960,"max":132256,"p95":132234.4,"q25":132080.0,"q75":132148.0,"sd":107.53232072265529,"median_ci95":[131960.0,132256.0]}}},{"suite":"render","scenario":"filter_open_10000","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":14.966791000006197,"mean":16.03162320006959,"min":13.633096999910777,"max":22.424792000492744,"p95":20.953605600334413,"q25":14.064576000237139,"q75":15.06885999970109,"sd":3.6247617343832625,"median_ci95":[13.633096999910777,22.424792000492744]},"cpu_ms":{"n":5,"median":14.927015000000043,"mean":15.903606399999992,"min":13.521630000000062,"max":22.13992599999992,"p95":20.700684599999917,"q25":13.985742000000023,"q75":14.943718999999911,"sd":3.539732057780642,"median_ci95":[13.521630000000062,22.13992599999992]},"terminal_bytes":{"n":5,"median":28980,"mean":28980,"min":28980,"max":28980,"p95":28980.0,"q25":28980.0,"q75":28980.0,"sd":0.0,"median_ci95":[28980.0,28980.0]},"frames":{"n":5,"median":2,"mean":2,"min":2,"max":2,"p95":2.0,"q25":2.0,"q75":2.0,"sd":0.0,"median_ci95":[2.0,2.0]},"max_loop_delay_ms":{"n":5,"median":12.288248000113525,"mean":13.876739000006635,"min":10.645343999494797,"max":21.01896099986334,"p95":19.545948800005135,"q25":11.777241999989199,"q75":13.65390000057232,"sd":4.136245195647331,"median_ci95":[10.645343999494797,21.01896099986334]},"p95_loop_delay_ms":{"n":5,"median":10.531968950199365,"mean":11.889252920054782,"min":9.157878749574587,"max":17.979754449897875,"p95":16.72093910002331,"q25":10.090984750077036,"q75":11.685677700525043,"sd":3.523919862886201,"median_ci95":[9.157878749574587,17.979754449897875]},"loop_delays_over_16_7_ms":{"n":5,"median":0,"mean":0.2,"min":0,"max":1,"p95":0.7999999999999998,"q25":0.0,"q75":0.0,"sd":0.4472135954999579,"median_ci95":[0.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":99.18237947025943,"mean":99.25106499213692,"min":98.72968275252425,"max":99.73423828791265,"p95":99.67528771270815,"q25":99.16953903809802,"q75":99.43948541189022,"sd":0.37153812395629054,"median_ci95":[98.72968275252425,99.73423828791265]},"maxrss_kib":{"n":5,"median":136756,"mean":136742.4,"min":136568,"max":136864,"p95":136858.4,"q25":136688.0,"q75":136836.0,"sd":119.4855639815957,"median_ci95":[136568.0,136864.0]}}},{"suite":"render","scenario":"filter_search_10000","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":69.83142399985809,"mean":69.4141750000199,"min":59.32475400004478,"max":80.13055099945632,"p95":79.54965859953518,"q25":60.558057000889676,"q75":77.22608899985062,"sd":9.437532168940821,"median_ci95":[59.32475400004478,80.13055099945632]},"cpu_ms":{"n":5,"median":58.50749799999999,"mean":58.43020399999998,"min":42.78386700000003,"max":74.93763499999994,"p95":74.31461399999995,"q25":44.09949000000002,"q75":71.82252999999994,"sd":15.016931057475036,"median_ci95":[42.78386700000003,74.93763499999994]},"terminal_bytes":{"n":5,"median":52778,"mean":52778,"min":49857,"max":55699,"p95":55699.0,"q25":49857.0,"q75":55699.0,"sd":2921.0,"median_ci95":[49857.0,55699.0]},"frames":{"n":5,"median":4,"mean":4,"min":3,"max":5,"p95":5.0,"q25":3.0,"q75":5.0,"sd":1.0,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":19.56417000030342,"mean":24.37780180000118,"min":15.7722979994287,"max":40.62834699936502,"p95":37.92715479950857,"q25":18.801808000825986,"q75":27.12238600008277,"sd":9.999130153681792,"median_ci95":[15.7722979994287,40.62834699936502]},"p95_loop_delay_ms":{"n":5,"median":18.620893750057803,"mean":21.74381904997972,"min":14.608946649623245,"max":33.77473874945281,"p95":32.31957069958298,"q25":15.215617600661059,"q75":26.498898500103678,"sd":8.225422331912629,"median_ci95":[14.608946649623245,33.77473874945281]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.2,"min":0,"max":2,"p95":2.0,"q25":1.0,"q75":2.0,"sd":0.8366600265340756,"median_ci95":[0.0,2.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":83.7839108080037,"mean":83.05826959824151,"min":70.64933902910967,"max":93.51943056089605,"p95":93.41613161561037,"q25":74.33573175873047,"q75":93.00293583446764,"sd":10.475245279145554,"median_ci95":[70.64933902910967,93.51943056089605]},"maxrss_kib":{"n":5,"median":138488,"mean":138508.8,"min":138372,"max":138656,"p95":138634.4,"q25":138480.0,"q75":138548.0,"sd":103.89995187679348,"median_ci95":[138372.0,138656.0]}}},{"suite":"render","scenario":"filter_close_10000","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":70.05341900003259,"mean":75.19615059991338,"min":64.64673999926163,"max":90.38881400010723,"p95":89.45889020014874,"q25":65.15258499985066,"q75":85.7391950003148,"sd":12.047652973844581,"median_ci95":[64.64673999926163,90.38881400010723]},"cpu_ms":{"n":5,"median":57.37259299999997,"mean":63.88562719999997,"min":51.8141379999999,"max":79.3374309999999,"p95":79.07194959999994,"q25":52.89394999999997,"q75":78.01002400000013,"sd":13.667610062686844,"median_ci95":[51.8141379999999,79.3374309999999]},"terminal_bytes":{"n":5,"median":54189,"mean":52012,"min":46923,"max":54189,"p95":54189.0,"q25":50570.0,"q75":54189.0,"sd":3247.894394834906,"median_ci95":[46923.0,54189.0]},"frames":{"n":5,"median":5,"mean":4.4,"min":3,"max":5,"p95":5.0,"q25":4.0,"q75":5.0,"sd":0.8944271909999159,"median_ci95":[3.0,5.0]},"max_loop_delay_ms":{"n":5,"median":28.677130999421934,"mean":35.47289139998611,"min":27.020608000493667,"max":48.52281100022083,"p95":47.86502000017208,"q25":27.91005099981703,"q75":45.233855999977095,"sd":10.492817072889776,"median_ci95":[27.020608000493667,48.52281100022083]},"p95_loop_delay_ms":{"n":5,"median":22.577192399894546,"mean":27.64589635008632,"min":21.030220450320474,"max":37.7952009999899,"p95":37.34495885001706,"q25":21.282877650100986,"q75":35.543990250125695,"sd":8.29661386428507,"median_ci95":[21.030220450320474,37.7952009999899]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":81.89834817337506,"mean":84.41681967822424,"min":79.52737101700365,"max":92.53344517604651,"p95":91.28774686473531,"q25":81.81998040520544,"q75":86.30495361949055,"sd":5.158430972529401,"median_ci95":[79.52737101700365,92.53344517604651]},"maxrss_kib":{"n":5,"median":144124,"mean":143964.8,"min":143176,"max":144208,"p95":144204.8,"q25":144124.0,"q75":144192.0,"sd":442.6230902246289,"median_ci95":[143176.0,144208.0]}}},{"suite":"render","scenario":"render_50000_6_normal","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":1262.757667999722,"mean":1340.5770886000028,"min":1239.2431739999665,"max":1557.497099000102,"p95":1525.2632698000525,"q25":1247.0595490003689,"q75":1396.3279529998545,"sd":137.14263056833366,"median_ci95":[1239.2431739999665,1557.497099000102]},"cpu_ms":{"n":5,"median":311.748229,"mean":335.21918,"min":295.92884900000007,"max":424.5300539999999,"p95":407.29817159999993,"q25":305.51812599999994,"q75":338.3706420000001,"sd":52.35248844855939,"median_ci95":[295.92884900000007,424.5300539999999]},"terminal_bytes":{"n":5,"median":153827,"mean":159859.4,"min":153827,"max":173935,"p95":171924.2,"q25":153827.0,"q75":163881.0,"sd":8992.570978313155,"median_ci95":[153827.0,173935.0]},"frames":{"n":5,"median":21,"mean":22.2,"min":21,"max":25,"p95":24.6,"q25":21.0,"q75":23.0,"sd":1.7888543819998317,"median_ci95":[21.0,25.0]},"first_result_refresh_ms":{"n":5,"median":60.54282300010527,"mean":64.59510340009729,"min":58.01851300020644,"max":85.57904100052838,"p95":80.60716600029991,"q25":58.11547400026029,"q75":60.71966599938605,"sd":11.800453033177847,"median_ci95":[58.01851300020644,85.57904100052838]},"max_loop_delay_ms":{"n":5,"median":19.861790000613837,"mean":22.808109000034165,"min":19.017915000513312,"max":34.625896999496035,"p95":31.886084199613833,"q25":19.608109999462613,"q75":20.926833000085026,"sd":6.642395509005348,"median_ci95":[19.017915000513312,34.625896999496035]},"p95_loop_delay_ms":{"n":5,"median":10.215149799587373,"mean":10.112291120030923,"min":8.334811599634117,"max":11.752965000523544,"p95":11.471022730529508,"q25":9.915275549856206,"q75":10.343253650553374,"sd":1.220039237167956,"median_ci95":[8.334811599634117,11.752965000523544]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.8,"min":2,"max":5,"p95":4.6,"q25":2.0,"q75":3.0,"sd":1.3038404810405297,"median_ci95":[2.0,5.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":24.232891798309172,"mean":24.91421528805041,"min":23.730129746988734,"max":27.257197093499823,"p95":26.837025718726295,"q25":24.19451758182214,"q75":25.15634021963218,"sd":1.4082270127482288,"median_ci95":[23.730129746988734,27.257197093499823]},"maxrss_kib":{"n":5,"median":178188,"mean":178233.6,"min":178144,"max":178384,"p95":178365.6,"q25":178160.0,"q75":178292.0,"sd":101.92546296191153,"median_ci95":[178144.0,178384.0]}}},{"suite":"render","scenario":"render_5000_40_wide","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":482.2593359995153,"mean":483.4003039999516,"min":479.8018179999417,"max":491.84755599981145,"p95":490.1324973998271,"q25":479.8205470005996,"q75":483.2722629998898,"sd":4.960797075358186,"median_ci95":[479.8018179999417,491.84755599981145]},"cpu_ms":{"n":5,"median":158.50261600000005,"mean":167.09406800000002,"min":146.17659000000006,"max":199.69980700000002,"p95":195.499843,"q25":152.3913400000001,"q75":178.6999869999999,"sd":21.939437752375554,"median_ci95":[146.17659000000006,199.69980700000002]},"terminal_bytes":{"n":5,"median":103053,"mean":103766.6,"min":103053,"max":106621,"p95":105907.4,"q25":103053.0,"q75":103053.0,"sd":1595.6581087438499,"median_ci95":[103053.0,106621.0]},"frames":{"n":5,"median":11,"mean":11.2,"min":11,"max":12,"p95":11.8,"q25":11.0,"q75":11.0,"sd":0.4472135954999579,"median_ci95":[11.0,12.0]},"first_result_refresh_ms":{"n":5,"median":68.3170729998892,"mean":73.8581048002743,"min":60.597667999900295,"max":91.52869800072949,"p95":90.70049480069429,"q25":61.45940300029906,"q75":87.38768200055347,"sd":14.625058522520417,"median_ci95":[60.597667999900295,91.52869800072949]},"max_loop_delay_ms":{"n":5,"median":22.751347000048554,"mean":28.22113119993446,"min":21.34086899979593,"max":39.369949000611086,"p95":38.70742720038834,"q25":21.586150999719393,"q75":36.057339999497344,"sd":8.760448277574802,"median_ci95":[21.34086899979593,39.369949000611086]},"p95_loop_delay_ms":{"n":5,"median":11.967705600018226,"mean":12.212789020095435,"min":10.28373850032949,"max":15.28838395012826,"p95":14.683278920128934,"q25":11.261258249869568,"q75":12.262858800131637,"sd":1.880724843897236,"median_ci95":[10.28373850032949,15.28838395012826]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.2,"min":2,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[2.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":32.79778876944076,"mean":34.541668450454374,"min":30.46603504116315,"max":40.60197200615481,"p95":39.9301951398364,"q25":31.599458760950405,"q75":37.24308767456275,"sd":4.252453612251745,"median_ci95":[30.46603504116315,40.60197200615481]},"maxrss_kib":{"n":5,"median":204280,"mean":204261.6,"min":204120,"max":204372,"p95":204356.0,"q25":204244.0,"q75":204292.0,"sd":91.93911028501418,"median_ci95":[204120.0,204372.0]}}},{"suite":"render","scenario":"render_1000_3_long","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":184.23954799982312,"mean":224.17849480007135,"min":180.03438699997787,"max":358.00611000013305,"p95":329.42373220012087,"q25":183.51820800035057,"q75":215.09422100007214,"sd":76.14038886856308,"median_ci95":[180.03438699997787,358.00611000013305]},"cpu_ms":{"n":5,"median":125.81989800000004,"mean":124.39120979999996,"min":94.38714000000003,"max":155.59704499999992,"p95":150.42680119999994,"q25":116.40613999999982,"q75":129.74582599999997,"sd":22.184018794088125,"median_ci95":[94.38714000000003,155.59704499999992]},"terminal_bytes":{"n":5,"median":80745,"mean":82649.4,"min":80745,"max":90267,"p95":88362.6,"q25":80745.0,"q75":80745.0,"sd":4258.367856350599,"median_ci95":[80745.0,90267.0]},"frames":{"n":5,"median":7,"mean":7.4,"min":7,"max":9,"p95":8.6,"q25":7.0,"q75":7.0,"sd":0.8944271909999159,"median_ci95":[7.0,9.0]},"first_result_refresh_ms":{"n":5,"median":92.96409499984293,"mean":86.19438779987831,"min":61.772572999871045,"max":97.95107399986591,"p95":97.43355419977888,"q25":82.92072200038092,"q75":95.36347499943076,"sd":14.792419443281423,"median_ci95":[61.772572999871045,97.95107399986591]},"max_loop_delay_ms":{"n":5,"median":36.21500200017181,"mean":32.773562199981825,"min":20.33771300022636,"max":41.54807199949573,"p95":40.58199879957101,"q25":29.049318000143103,"q75":36.71770599987212,"sd":8.260026340959836,"median_ci95":[20.33771300022636,41.54807199949573]},"p95_loop_delay_ms":{"n":5,"median":28.49625600003492,"mean":25.03966650991058,"min":16.45349060028819,"max":31.710251949625622,"p95":31.652428239685786,"q25":17.117200599677727,"q75":31.42113339992645,"sd":7.642900685111751,"median_ci95":[16.45349060028819,31.710251949625622]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2.2,"min":2,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.4472135954999579,"median_ci95":[2.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":60.320461143377926,"mean":57.586326268387594,"min":43.46211996212637,"max":68.29147127527735,"p95":67.31923594248178,"q25":52.427284349856805,"q75":63.43029461129953,"sd":9.776713486968907,"median_ci95":[43.46211996212637,68.29147127527735]},"maxrss_kib":{"n":5,"median":248236,"mean":248230.4,"min":248128,"max":248312,"p95":248298.4,"q25":248232.0,"q75":248244.0,"sd":65.88474785563044,"median_ci95":[248128.0,248312.0]}}},{"suite":"render","scenario":"render_10000_6_decimal","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":190.6481240002904,"mean":254.64939960020274,"min":186.36783200054197,"max":366.1017530002937,"p95":361.12606580027204,"q25":188.90597199970216,"q75":341.2233170001855,"sd":90.82593830693828,"median_ci95":[186.36783200054197,366.1017530002937]},"cpu_ms":{"n":5,"median":110.819738,"mean":124.06989219999991,"min":99.8917829999999,"max":163.93443200000002,"p95":160.11719299999996,"q25":100.85527099999992,"q75":144.8482369999997,"sd":28.809665627892404,"median_ci95":[99.8917829999999,163.93443200000002]},"terminal_bytes":{"n":5,"median":81945,"mean":84025.8,"min":81112,"max":87980,"p95":87980.0,"q25":81112.0,"q75":87980.0,"sd":3625.658036825867,"median_ci95":[81112.0,87980.0]},"frames":{"n":5,"median":8,"mean":8,"min":7,"max":9,"p95":9.0,"q25":7.0,"q75":9.0,"sd":1.0,"median_ci95":[7.0,9.0]},"first_result_refresh_ms":{"n":5,"median":76.30404599967733,"mean":81.61882419990434,"min":65.11748399952921,"max":99.09588000027725,"p95":98.81769360017643,"q25":69.87176300026476,"q75":97.70494799977314,"sd":15.833077724405447,"median_ci95":[65.11748399952921,99.09588000027725]},"max_loop_delay_ms":{"n":5,"median":29.666313000343507,"mean":37.58239200007665,"min":27.814647000122932,"max":50.50053799925081,"p95":50.49213019949093,"q25":29.4719630002146,"q75":50.45849900045141,"sd":11.795389302785003,"median_ci95":[27.814647000122932,50.50053799925081]},"p95_loop_delay_ms":{"n":5,"median":16.469862800040552,"mean":16.887460799935056,"min":12.660188199988621,"max":23.26103459974544,"p95":22.096236359793664,"q25":14.609174999914101,"q75":17.437043399986567,"sd":4.0049747791421755,"median_ci95":[12.660188199988621,23.26103459974544]},"loop_delays_over_16_7_ms":{"n":5,"median":2,"mean":2,"min":1,"max":3,"p95":2.8,"q25":2.0,"q75":2.0,"sd":0.7071067811865476,"median_ci95":[1.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0.4,"min":0,"max":1,"p95":1.0,"q25":0.0,"q75":1.0,"sd":0.5477225575051661,"median_ci95":[0.0,1.0]},"one_core_cpu_percent":{"n":5,"median":52.87910273167933,"mean":50.546282428329164,"min":39.56502142175853,"max":58.12789324894232,"p95":57.325563431034524,"q25":48.043150579862306,"q75":54.11624415940334,"sd":7.115498266276459,"median_ci95":[39.56502142175853,58.12789324894232]},"maxrss_kib":{"n":5,"median":254516,"mean":254476.8,"min":254124,"max":254712,"p95":254696.0,"q25":254400.0,"q75":254632.0,"sd":229.84168464401753,"median_ci95":[254124.0,254712.0]}}},{"suite":"idle","scenario":"idle_5s","variant":"baseline","metrics":{"wall_ms":{"n":9,"median":5003.949650999857,"mean":5005.126969999866,"min":5002.763843000139,"max":5014.096275000156,"p95":5010.650745000203,"q25":5003.68959699972,"q75":5004.569844999423,"sd":3.447523170284983,"median_ci95":[5003.535438999279,5005.482450000272]},"cpu_ms":{"n":9,"median":21.07285000000003,"mean":20.62105211111112,"min":18.335354999999996,"max":21.875052000000007,"p95":21.801090000000002,"q25":20.334995999999993,"q75":21.317291000000015,"sd":1.1666038363176734,"median_ci95":[19.236387000000022,21.690146999999993]},"terminal_bytes":{"n":9,"median":18297,"mean":18297,"min":18297,"max":18297,"p95":18297.0,"q25":18297.0,"q75":18297.0,"sd":0.0,"median_ci95":[18297.0,18297.0]},"frames":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"max_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"p95_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_16_7_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":9,"median":0.4211462280281254,"mean":0.411991223030013,"min":0.36650450781631044,"max":0.4362710805747208,"p95":0.43515544660579314,"q25":0.4063789090271279,"q75":0.4258788481018219,"sd":0.023161238824769618,"median_ci95":[0.3844558959264083,0.4334819956524016]},"maxrss_kib":{"n":9,"median":115064,"mean":113699.55555555556,"min":108988,"max":115140,"p95":115135.2,"q25":114792.0,"q75":115108.0,"sd":2669.8587561475565,"median_ci95":[109000.0,115128.0]}}},{"suite":"idle","scenario":"editor_idle_5s","variant":"baseline","metrics":{"wall_ms":{"n":9,"median":5004.336959000284,"mean":5004.505247999987,"min":5002.866317000553,"max":5006.382337999639,"p95":5006.296633199781,"q25":5003.5412799998085,"q75":5005.3774449997945,"sd":1.2453580283293628,"median_ci95":[5003.22194599994,5006.1680759999945]},"cpu_ms":{"n":9,"median":39.87964199999999,"mean":40.42885111111113,"min":36.81090100000001,"max":47.11620300000002,"p95":45.637467800000024,"q25":38.823887,"q75":40.649305999999996,"sd":3.192217149599104,"median_ci95":[37.158716000000034,43.41936500000004]},"terminal_bytes":{"n":9,"median":20199,"mean":20199,"min":20199,"max":20199,"p95":20199.0,"q25":20199.0,"q75":20199.0,"sd":0.0,"median_ci95":[20199.0,20199.0]},"frames":{"n":9,"median":10,"mean":10,"min":10,"max":10,"p95":10.0,"q25":10.0,"q75":10.0,"sd":0.0,"median_ci95":[10.0,10.0]},"max_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"p95_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_16_7_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":9,"median":0.7967359592399655,"mean":0.8078437971362664,"min":0.735743914567496,"max":0.9415074041979065,"p95":0.9118165404656919,"q25":0.7760328687590576,"q75":0.8124107252294229,"sd":0.0637128731017104,"median_ci95":[0.7425254526982759,0.8672802448673702]},"maxrss_kib":{"n":9,"median":115256,"mean":113912.88888888889,"min":109116,"max":115364,"p95":115352.8,"q25":115048.0,"q75":115320.0,"sd":2681.6426143524627,"median_ci95":[109256.0,115336.0]}}},{"suite":"idle","scenario":"idle_5s","variant":"candidate","metrics":{"wall_ms":{"n":9,"median":5007.76851000046,"mean":5008.780077111321,"min":5007.106484999895,"max":5015.584028000376,"p95":5013.333496400446,"q25":5007.351815999755,"q75":5008.144610000272,"sd":2.6853760900373955,"median_ci95":[5007.351815999755,5009.957699000552]},"cpu_ms":{"n":9,"median":5.9093639999999725,"mean":6.446219666666672,"min":5.245129000000015,"max":9.319234999999981,"p95":8.55735059999998,"q25":5.789838000000048,"q75":6.577398000000012,"sd":1.255545602108784,"median_ci95":[5.789838000000048,7.414523999999978]},"terminal_bytes":{"n":9,"median":18297,"mean":18297,"min":18297,"max":18297,"p95":18297.0,"q25":18297.0,"q75":18297.0,"sd":0.0,"median_ci95":[18297.0,18297.0]},"frames":{"n":9,"median":1,"mean":1,"min":1,"max":1,"p95":1.0,"q25":1.0,"q75":1.0,"sd":0.0,"median_ci95":[1.0,1.0]},"max_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"p95_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_16_7_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":9,"median":0.1178200577840968,"mean":0.1286967756278119,"min":0.10474859125382416,"max":0.1860142452272421,"p95":0.1708291756253906,"q25":0.11561712544095844,"q75":0.13134598355439636,"sd":0.02505483865009241,"median_ci95":[0.11561712544095844,0.14805157122261337]},"maxrss_kib":{"n":9,"median":114940,"mean":114293.33333333333,"min":109012,"max":115128,"p95":115091.2,"q25":114908.0,"q75":115024.0,"sd":1983.444478678443,"median_ci95":[114736.0,115036.0]}}},{"suite":"idle","scenario":"editor_idle_5s","variant":"candidate","metrics":{"wall_ms":{"n":9,"median":5005.788428000415,"mean":5005.688825111065,"min":5003.428424000049,"max":5008.502663999934,"p95":5007.994206799958,"q25":5004.846992999774,"q75":5006.070364999687,"sd":1.5209805064342181,"median_ci95":[5004.406420999658,5007.231520999994]},"cpu_ms":{"n":9,"median":23.730517000000006,"mean":24.39394300000001,"min":19.02019699999996,"max":29.352531999999986,"p95":29.095596400000012,"q25":22.141260000000052,"q75":27.481756999999995,"sd":3.625457152666203,"median_ci95":[22.141260000000052,28.71019300000005]},"terminal_bytes":{"n":9,"median":20199,"mean":20199,"min":20199,"max":20199,"p95":20199.0,"q25":20199.0,"q75":20199.0,"sd":0.0,"median_ci95":[20199.0,20199.0]},"frames":{"n":9,"median":10,"mean":10,"min":10,"max":10,"p95":10.0,"q25":10.0,"q75":10.0,"sd":0.0,"median_ci95":[10.0,10.0]},"max_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"p95_loop_delay_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_16_7_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"loop_delays_over_50_ms":{"n":9,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":9,"median":0.47380461970340915,"mean":0.487316960193263,"min":0.3800355340853238,"max":0.5863718058041257,"p95":0.5812261154552539,"q25":0.44238564597604724,"q75":0.5488413484525998,"sd":0.07237464133674433,"median_ci95":[0.44238564597604724,0.5735075799319462]},"maxrss_kib":{"n":9,"median":115300,"mean":114648.88888888889,"min":109268,"max":115408,"p95":115398.4,"q25":115292.0,"q75":115324.0,"sd":2018.4219358476837,"median_ci95":[115248.0,115384.0]}}},{"suite":"long-cells","scenario":"render_1000_3_long","variant":"baseline","metrics":{"wall_ms":{"n":5,"median":181.42645599982643,"mean":211.0239425997861,"min":162.96225800033426,"max":355.77710999950796,"p95":322.8944775995842,"q25":163.58994099937263,"q75":191.3639479998892,"sd":81.81674050480116,"median_ci95":[162.96225800033426,355.77710999950796]},"cpu_ms":{"n":5,"median":90.61595399999995,"mean":92.63892879999999,"min":71.969014,"max":111.05918599999998,"p95":109.68245119999999,"q25":85.37497799999998,"q75":104.17551200000003,"sd":15.463678518953609,"median_ci95":[71.969014,111.05918599999998]},"terminal_bytes":{"n":5,"median":68382,"mean":70286,"min":68382,"max":77902,"p95":75998.0,"q25":68382.0,"q75":68382.0,"sd":4257.4734291596,"median_ci95":[68382.0,77902.0]},"frames":{"n":5,"median":8,"mean":8.4,"min":8,"max":10,"p95":9.6,"q25":8.0,"q75":8.0,"sd":0.8944271909999159,"median_ci95":[8.0,10.0]},"first_result_refresh_ms":{"n":5,"median":28.062180999768316,"mean":30.294245600089198,"min":23.16867999979877,"max":39.28181599985692,"p95":38.68830840001465,"q25":24.644273000376415,"q75":36.31427800064557,"sd":7.153586507411554,"median_ci95":[23.16867999979877,39.28181599985692]},"max_loop_delay_ms":{"n":5,"median":25.721437000465812,"mean":28.300285000041185,"min":21.873499999965134,"max":36.78071099977387,"p95":36.17539579983713,"q25":23.371641999910935,"q75":33.75413500009017,"sd":6.5937024732851315,"median_ci95":[21.873499999965134,36.78071099977387]},"p95_loop_delay_ms":{"n":5,"median":14.453023199821464,"mean":15.803693839843614,"min":12.095124299612506,"max":24.41587224968316,"p95":22.454562369675838,"q25":13.44512660045438,"q75":14.609322849646556,"sd":4.917742817096038,"median_ci95":[12.095124299612506,24.41587224968316]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.6,"min":1,"max":3,"p95":2.8,"q25":1.0,"q75":2.0,"sd":0.8944271909999159,"median_ci95":[1.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":47.35267794540506,"mean":46.47436564251872,"min":31.215944724536545,"max":57.420243054353485,"p95":56.41407797892384,"q25":43.993544811093244,"q75":52.38941767720528,"sd":9.931583286381334,"median_ci95":[31.215944724536545,57.420243054353485]},"maxrss_kib":{"n":5,"median":164036,"mean":164028,"min":163828,"max":164312,"p95":164274.4,"q25":163840.0,"q75":164124.0,"sd":203.2732151563506,"median_ci95":[163828.0,164312.0]}}},{"suite":"long-cells","scenario":"render_1000_3_long","variant":"candidate","metrics":{"wall_ms":{"n":5,"median":189.90923399996973,"mean":192.86555020007654,"min":185.97432800015667,"max":205.5298870000115,"p95":203.55273519999173,"q25":187.2701740003322,"q75":195.6441279999126,"sd":7.994418441517133,"median_ci95":[185.97432800015667,205.5298870000115]},"cpu_ms":{"n":5,"median":86.277948,"mean":85.6722034,"min":77.560244,"max":100.066294,"p95":97.3471878,"q25":77.98576800000001,"q75":86.470763,"sd":9.125234827414184,"median_ci95":[77.560244,100.066294]},"terminal_bytes":{"n":5,"median":71999,"mean":70552.2,"min":68382,"max":71999,"p95":71999.0,"q25":68382.0,"q75":71999.0,"sd":1981.1124904961857,"median_ci95":[68382.0,71999.0]},"frames":{"n":5,"median":9,"mean":8.6,"min":8,"max":9,"p95":9.0,"q25":8.0,"q75":9.0,"sd":0.5477225575051661,"median_ci95":[8.0,9.0]},"first_result_refresh_ms":{"n":5,"median":28.823684000599314,"mean":30.512692000047537,"min":20.703647999653185,"max":41.44817199994577,"p95":39.7702954000124,"q25":28.52916699976049,"q75":33.05878900027892,"sd":7.567558992393085,"median_ci95":[20.703647999653185,41.44817199994577]},"max_loop_delay_ms":{"n":5,"median":26.49259199926746,"mean":28.392581199768756,"min":19.36143799968704,"max":38.514126000445685,"p95":37.11460140031704,"q25":26.078246999641124,"q75":31.516502999802473,"sd":7.119203006958016,"median_ci95":[19.36143799968704,38.514126000445685]},"p95_loop_delay_ms":{"n":5,"median":14.59838474999742,"mean":13.997000389927045,"min":7.3271224997552045,"max":20.32164279964489,"p95":19.274542639723208,"q25":12.651709900201237,"q75":15.086142000036471,"sd":4.686311763470299,"median_ci95":[7.3271224997552045,20.32164279964489]},"loop_delays_over_16_7_ms":{"n":5,"median":1,"mean":1.6,"min":1,"max":3,"p95":2.8,"q25":1.0,"q75":2.0,"sd":0.8944271909999159,"median_ci95":[1.0,3.0]},"loop_delays_over_50_ms":{"n":5,"median":0,"mean":0,"min":0,"max":0,"p95":0.0,"q25":0.0,"q75":0.0,"sd":0.0,"median_ci95":[0.0,0.0]},"one_core_cpu_percent":{"n":5,"median":46.174337938003205,"mean":44.50306279294037,"min":37.73672293217173,"max":51.147098061662604,"p95":50.19615778868571,"q25":41.06475833608619,"q75":46.39239669677812,"sd":5.198827764798772,"median_ci95":[37.73672293217173,51.147098061662604]},"maxrss_kib":{"n":5,"median":163964,"mean":163967.2,"min":163828,"max":164124,"p95":164100.8,"q25":163912.0,"q75":164008.0,"sd":110.3231616660799,"median_ci95":[163828.0,164124.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"baseline","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.8542840005247854,"mean":0.8563938889791542,"min":0.8403470001212554,"max":0.8825739996609627,"p95":0.8790635996774654,"q25":0.842659000227286,"q75":0.8605089997217874,"sd":0.014522885213929661,"median_ci95":[0.8417250001002685,0.8737979997022194]},"cpu_ms":{"n":9,"median":0.8466290000000015,"mean":0.8481464444444436,"min":0.8400689999999988,"max":0.8688919999999961,"p95":0.8638215999999976,"q25":0.840581,"q75":0.8510099999999993,"sd":0.00954040480156681,"median_ci95":[0.8403350000000045,0.8562159999999999]},"maxrss_kib":{"n":9,"median":23256,"mean":23256,"min":23256,"max":23256,"p95":23256.0,"q25":23256.0,"q75":23256.0,"sd":0.0,"median_ci95":[23256.0,23256.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"baseline","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.15598200025124243,"mean":0.15900033324416857,"min":0.15109400010260288,"max":0.17079500048566842,"p95":0.16989940031635342,"q25":0.15433999942615628,"q75":0.1637149998714449,"sd":0.0071074403642852665,"median_ci95":[0.15236200033541536,0.16855600006238092]},"cpu_ms":{"n":9,"median":0.1557210000000045,"mean":0.15597022222222198,"min":0.15143299999999943,"max":0.1594800000000035,"p95":0.1594028000000025,"q25":0.15474199999999938,"q75":0.1580169999999964,"sd":0.0027626146481998935,"median_ci95":[0.15267599999999742,0.159287000000001]},"maxrss_kib":{"n":9,"median":23256,"mean":23256,"min":23256,"max":23256,"p95":23256.0,"q25":23256.0,"q75":23256.0,"sd":0.0,"median_ci95":[23256.0,23256.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"baseline","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.906566999219649,"mean":0.9200416666822598,"min":0.8846260006976081,"max":1.0086760003105155,"p95":0.9922756000378286,"q25":0.8931400006986223,"q75":0.9169360000669258,"sd":0.041372289558614245,"median_ci95":[0.8883959999366198,0.9676749996287981]},"cpu_ms":{"n":9,"median":0.8992339999999988,"mean":0.9086367777777771,"min":0.8834239999999938,"max":1.0070380000000019,"p95":0.9685780000000005,"q25":0.890674000000008,"q75":0.9085469999999957,"sd":0.038100246688105494,"median_ci95":[0.8861569999999985,0.9108879999999986]},"maxrss_kib":{"n":9,"median":24208,"mean":24208,"min":24208,"max":24208,"p95":24208.0,"q25":24208.0,"q75":24208.0,"sd":0.0,"median_ci95":[24208.0,24208.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"baseline","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.8056349997787038,"mean":0.8112628889244257,"min":0.7901919998403173,"max":0.8465970004181145,"p95":0.8396826004172908,"q25":0.7920870002635638,"q75":0.8265850001407671,"sd":0.02080227152197889,"median_ci95":[0.7916739996289834,0.8293110004160553]},"cpu_ms":{"n":9,"median":0.8008719999999941,"mean":0.8042512222222218,"min":0.7858220000000055,"max":0.8253059999999979,"p95":0.8252007999999977,"q25":0.7921310000000015,"q75":0.8224230000000027,"sd":0.015992107582942512,"median_ci95":[0.7899249999999969,0.8250429999999975]},"maxrss_kib":{"n":9,"median":24208,"mean":24208,"min":24208,"max":24208,"p95":24208.0,"q25":24208.0,"q75":24208.0,"sd":0.0,"median_ci95":[24208.0,24208.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"baseline","objects":1000,"metrics":{"wall_ms":{"n":9,"median":78.05847500003438,"mean":78.65064399983466,"min":77.4142739992385,"max":82.55968600042252,"p95":81.84012120018451,"q25":77.59970600000088,"q75":78.18598699941504,"sd":1.7846406946218185,"median_ci95":[77.53336900077556,80.7607739998275]},"cpu_ms":{"n":9,"median":77.062876,"mean":77.00827477777777,"min":76.73233499999998,"max":77.33553699999996,"p95":77.29768859999997,"q25":76.82957000000002,"q75":77.14700600000002,"sd":0.21812006422826893,"median_ci95":[76.74646099999998,77.240916]},"maxrss_kib":{"n":9,"median":25104,"mean":25104,"min":25104,"max":25104,"p95":25104.0,"q25":25104.0,"q75":25104.0,"sd":0.0,"median_ci95":[25104.0,25104.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"baseline","objects":1000,"metrics":{"wall_ms":{"n":9,"median":1.4345780000439845,"mean":1.4403414445243672,"min":1.3907069997003418,"max":1.4949350006645545,"p95":1.493065800241311,"q25":1.4249800005927682,"q75":1.4692180002384703,"sd":0.03765868726798921,"median_ci95":[1.3944480006102822,1.490261999606446]},"cpu_ms":{"n":9,"median":1.430841000000016,"mean":1.4310731111111006,"min":1.3884239999999437,"max":1.472114999999996,"p95":1.4689914000000082,"q25":1.4164939999999904,"q75":1.4611620000000158,"sd":0.0306550869451158,"median_ci95":[1.390366999999948,1.4643060000000263]},"maxrss_kib":{"n":9,"median":25104,"mean":25104,"min":25104,"max":25104,"p95":25104.0,"q25":25104.0,"q75":25104.0,"sd":0.0,"median_ci95":[25104.0,25104.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"baseline","objects":1000,"metrics":{"wall_ms":{"n":9,"median":77.59475100010604,"mean":78.24998844444053,"min":77.27992299987818,"max":80.81612800015137,"p95":80.33905400006915,"q25":77.46186100030172,"q75":79.09078499960742,"sd":1.279209905518306,"median_ci95":[77.2887470002388,79.62344299994584]},"cpu_ms":{"n":9,"median":76.76680700000004,"mean":77.02478866666665,"min":76.483407,"max":79.33738099999998,"p95":78.44889499999996,"q25":76.67310100000013,"q75":76.78984799999999,"sd":0.8852277606974837,"median_ci95":[76.55299800000004,77.11616599999994]},"maxrss_kib":{"n":9,"median":25104,"mean":25104,"min":25104,"max":25104,"p95":25104.0,"q25":25104.0,"q75":25104.0,"sd":0.0,"median_ci95":[25104.0,25104.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"baseline","objects":1000,"metrics":{"wall_ms":{"n":9,"median":79.79373800026224,"mean":80.02761866666535,"min":78.63282699963747,"max":81.98822700069286,"p95":81.6011310005706,"q25":79.25381199947878,"q75":80.98197399976925,"sd":1.0933695466244653,"median_ci95":[79.16510699942592,81.02048700038722]},"cpu_ms":{"n":9,"median":78.99632099999998,"mean":78.96546911111115,"min":77.75389700000002,"max":80.34967800000015,"p95":80.06575920000003,"q25":78.49389600000035,"q75":79.3797679999999,"sd":0.7807361432353979,"median_ci95":[78.36055900000005,79.63988099999986]},"maxrss_kib":{"n":9,"median":25104,"mean":25104,"min":25104,"max":25104,"p95":25104.0,"q25":25104.0,"q75":25104.0,"sd":0.0,"median_ci95":[25104.0,25104.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"baseline","objects":5000,"metrics":{"wall_ms":{"n":9,"median":2337.474960999316,"mean":2301.7218530000414,"min":2004.4071980000808,"max":2578.888895000091,"p95":2571.40193260002,"q25":2043.7765450005827,"q75":2493.4609940000882,"sd":226.44240291529798,"median_ci95":[2041.320270000142,2560.171488999913]},"cpu_ms":{"n":9,"median":2295.49707,"mean":2243.0829269999995,"min":1970.0998969999998,"max":2474.2440529999994,"p95":2463.3819521999994,"q25":2011.722444,"q75":2416.1060659999976,"sd":199.97449618756912,"median_ci95":[2007.9932360000007,2447.0888009999994]},"maxrss_kib":{"n":9,"median":29500,"mean":29500,"min":29500,"max":29500,"p95":29500.0,"q25":29500.0,"q75":29500.0,"sd":0.0,"median_ci95":[29500.0,29500.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"baseline","objects":5000,"metrics":{"wall_ms":{"n":9,"median":8.920899999793619,"mean":8.904488444487571,"min":8.798404000117444,"max":9.02821700037748,"p95":8.99142700000084,"q25":8.867112999723759,"q75":8.926984000027005,"sd":0.06843514219879261,"median_ci95":[8.819944000606483,8.936241999435879]},"cpu_ms":{"n":9,"median":8.812400000000054,"mean":8.812772666666765,"min":8.726693999999924,"max":8.885327000001553,"p95":8.87727940000076,"q25":8.775760999998994,"q75":8.848292999999785,"sd":0.05115584729065437,"median_ci95":[8.769440000001794,8.86520799999957]},"maxrss_kib":{"n":9,"median":29500,"mean":29500,"min":29500,"max":29500,"p95":29500.0,"q25":29500.0,"q75":29500.0,"sd":0.0,"median_ci95":[29500.0,29500.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"baseline","objects":5000,"metrics":{"wall_ms":{"n":9,"median":2339.063669999632,"mean":2373.340363000049,"min":2284.315974000492,"max":2519.098480000139,"p95":2493.545067999912,"q25":2313.9512560001094,"q75":2424.3105699997614,"sd":78.57467374410503,"median_ci95":[2303.0703170006745,2424.3105699997614]},"cpu_ms":{"n":9,"median":2300.630856000005,"mean":2322.1158123333335,"min":2253.072422999999,"max":2427.9119489999985,"p95":2423.295097399999,"q25":2280.9912649999974,"q75":2334.7581009999985,"sd":62.819670679445586,"median_ci95":[2265.1314639999996,2334.7581009999985]},"maxrss_kib":{"n":9,"median":29500,"mean":29500,"min":29500,"max":29500,"p95":29500.0,"q25":29500.0,"q75":29500.0,"sd":0.0,"median_ci95":[29500.0,29500.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"baseline","objects":5000,"metrics":{"wall_ms":{"n":9,"median":2432.91387499994,"mean":2502.90698355578,"min":2288.028279000173,"max":3002.1811220003656,"p95":2945.5515916002696,"q25":2302.7147890006745,"q75":2569.619354000679,"sd":262.22726706349505,"median_ci95":[2295.276984999873,2860.6072960001256]},"cpu_ms":{"n":9,"median":2365.7797190000024,"mean":2382.734841888888,"min":2269.171924999995,"max":2571.9200189999965,"p95":2554.0565813999974,"q25":2277.328707999999,"q75":2486.0428770000026,"sd":119.3217395080643,"median_ci95":[2271.163850000001,2527.261424999999]},"maxrss_kib":{"n":9,"median":29500,"mean":29500,"min":29500,"max":29500,"p95":29500.0,"q25":29500.0,"q75":29500.0,"sd":0.0,"median_ci95":[29500.0,29500.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"candidate","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.1220619997184258,"mean":0.1223182221615894,"min":0.10946000020339852,"max":0.14922599984856788,"p95":0.14261679971241392,"q25":0.11266999990766635,"q75":0.12692200016317656,"sd":0.012748265749234095,"median_ci95":[0.11109800016129157,0.13270299950818298]},"cpu_ms":{"n":9,"median":0.11941099999999982,"mean":0.1228732222222223,"min":0.11017299999999813,"max":0.15194100000000266,"p95":0.14466780000000068,"q25":0.11323600000000267,"q75":0.12770500000000573,"sd":0.0134243471515184,"median_ci95":[0.11167899999999648,0.1337579999999977]},"maxrss_kib":{"n":9,"median":23208,"mean":23208,"min":23208,"max":23208,"p95":23208.0,"q25":23208.0,"q75":23208.0,"sd":0.0,"median_ci95":[23208.0,23208.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"candidate","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.1805419997253921,"mean":0.18176044442144404,"min":0.1796630003809696,"max":0.1870500000222819,"p95":0.1859628002421232,"q25":0.18016499961959198,"q75":0.18209999961982248,"sd":0.00247639112167171,"median_ci95":[0.17991300046560355,0.18433200057188515]},"cpu_ms":{"n":9,"median":0.18111299999999664,"mean":0.18234911111111013,"min":0.1801399999999953,"max":0.18773100000000348,"p95":0.1866974000000035,"q25":0.1806580000000002,"q75":0.18277499999999614,"sd":0.0025631441358462794,"median_ci95":[0.18046399999999824,0.18514700000000356]},"maxrss_kib":{"n":9,"median":23208,"mean":23208,"min":23208,"max":23208,"p95":23208.0,"q25":23208.0,"q75":23208.0,"sd":0.0,"median_ci95":[23208.0,23208.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"candidate","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.18801599981088657,"mean":0.1981589999154999,"min":0.18014399938692804,"max":0.25467100022069644,"p95":0.23552820020995566,"q25":0.1844159996835515,"q75":0.2050200000667246,"sd":0.02327751095213568,"median_ci95":[0.18228099997941172,0.20681400019384455]},"cpu_ms":{"n":9,"median":0.18872999999999807,"mean":0.1976538888888882,"min":0.18096899999998917,"max":0.2568350000000108,"p95":0.2364282000000106,"q25":0.18347999999999975,"q75":0.1977769999999962,"sd":0.023692603457859514,"median_ci95":[0.18307999999998825,0.20581800000001038]},"maxrss_kib":{"n":9,"median":24160,"mean":24160,"min":24160,"max":24160,"p95":24160.0,"q25":24160.0,"q75":24160.0,"sd":0.0,"median_ci95":[24160.0,24160.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"candidate","objects":100,"metrics":{"wall_ms":{"n":9,"median":0.00022400035959435627,"mean":0.00031666675365866267,"min":0.00019900016923202202,"max":0.0006330001269816421,"p95":0.0005710002369596623,"q25":0.00021599953470285982,"q75":0.00039800033846404403,"sd":0.00015311118114273207,"median_ci95":[0.0002130000211764127,0.0004780004019266926]},"cpu_ms":{"n":9,"median":0.0005480000000029905,"mean":0.0006564444444427818,"min":0.0004920000000047109,"max":0.0011619999999989972,"p95":0.0010351999999991257,"q25":0.0005159999999920784,"q75":0.0007429999999974957,"sd":0.0002247382428022498,"median_ci95":[0.0005099999999952365,0.0008449999999993185]},"maxrss_kib":{"n":9,"median":24160,"mean":24160,"min":24160,"max":24160,"p95":24160.0,"q25":24160.0,"q75":24160.0,"sd":0.0,"median_ci95":[24160.0,24160.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"candidate","objects":1000,"metrics":{"wall_ms":{"n":9,"median":0.8030110002437141,"mean":0.8049008888014618,"min":0.7800209996275953,"max":0.8339999994859681,"p95":0.8285939993584179,"q25":0.7955729997775052,"q75":0.8119800004351418,"sd":0.01586277768134928,"median_ci95":[0.7927680007924209,0.8204849991670926]},"cpu_ms":{"n":9,"median":0.7997439999999911,"mean":0.8012470000000003,"min":0.7785720000000051,"max":0.8243210000000029,"p95":0.8218626000000034,"q25":0.7922060000000036,"q75":0.8090050000000015,"sd":0.01417916141737609,"median_ci95":[0.7906500000000038,0.8181750000000043]},"maxrss_kib":{"n":9,"median":25440,"mean":25440,"min":25440,"max":25440,"p95":25440.0,"q25":25440.0,"q75":25440.0,"sd":0.0,"median_ci95":[25440.0,25440.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"candidate","objects":1000,"metrics":{"wall_ms":{"n":9,"median":1.6202229999180418,"mean":1.6173492220130155,"min":1.5895499991529505,"max":1.6318219995810068,"p95":1.6304619997754344,"q25":1.6145150002557784,"q75":1.623186999495374,"sd":0.012519131560984782,"median_ci95":[1.6082669999377686,1.6284220000670757]},"cpu_ms":{"n":9,"median":1.6140150000000104,"mean":1.6115753333333325,"min":1.5827299999999904,"max":1.6261340000000013,"p95":1.6259684000000052,"q25":1.609368,"q75":1.6149679999999944,"sd":0.012767296650039842,"median_ci95":[1.6069099999999892,1.625720000000011]},"maxrss_kib":{"n":9,"median":25440,"mean":25440,"min":25440,"max":25440,"p95":25440.0,"q25":25440.0,"q75":25440.0,"sd":0.0,"median_ci95":[25440.0,25440.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"candidate","objects":1000,"metrics":{"wall_ms":{"n":9,"median":0.6563070000993321,"mean":0.6545085554737144,"min":0.6409369998436887,"max":0.6653609998465981,"p95":0.6642261996603338,"q25":0.6480559995907242,"q75":0.6600910000997828,"sd":0.0081023703210468,"median_ci95":[0.6466730001193355,0.6625239993809373]},"cpu_ms":{"n":9,"median":0.6545689999999937,"mean":0.6527766666666678,"min":0.6393229999999972,"max":0.6614169999999975,"p95":0.6609778000000011,"q25":0.6489679999999998,"q75":0.6592660000000056,"sd":0.007759583187903632,"median_ci95":[0.6438070000000101,0.6603190000000064]},"maxrss_kib":{"n":9,"median":25440,"mean":25440,"min":25440,"max":25440,"p95":25440.0,"q25":25440.0,"q75":25440.0,"sd":0.0,"median_ci95":[25440.0,25440.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"candidate","objects":1000,"metrics":{"wall_ms":{"n":9,"median":0.0002439992385916412,"mean":0.0003023332182136882,"min":0.00022600033844355494,"max":0.000553999598196242,"p95":0.0005119998604641296,"q25":0.00023499978851759806,"q75":0.0002830001903930679,"sd":0.00011711104144693479,"median_ci95":[0.00023400025384034961,0.000449000253865961]},"cpu_ms":{"n":9,"median":0.000554999999999306,"mean":0.0006625555555553023,"min":0.0005379999999943763,"max":0.0009350000000074576,"p95":0.0008922000000022301,"q25":0.0005530000000003588,"q75":0.000783000000004197,"sd":0.00015026984986428633,"median_ci95":[0.0005450000000045696,0.0008279999999943888]},"maxrss_kib":{"n":9,"median":25440,"mean":25440,"min":25440,"max":25440,"p95":25440.0,"q25":25440.0,"q75":25440.0,"sd":0.0,"median_ci95":[25440.0,25440.0]}}},{"suite":"cpu","scenario":"routine_completion","variant":"candidate","objects":5000,"metrics":{"wall_ms":{"n":9,"median":5.62616600018373,"mean":5.744059111142026,"min":5.555169999752252,"max":6.466331999945396,"p95":6.249775200012664,"q25":5.614085999695817,"q75":5.687279999619932,"sd":0.29204822620175364,"median_ci95":[5.568603000028816,5.9249400001135655]},"cpu_ms":{"n":9,"median":5.592268000000011,"mean":5.6745305555555525,"min":5.527957,"max":6.13713099999999,"p95":6.037287399999985,"q25":5.543461999999999,"q75":5.654732999999995,"sd":0.20523301230985125,"median_ci95":[5.539058999999985,5.887521999999978]},"maxrss_kib":{"n":9,"median":32356,"mean":32345.777777777777,"min":32264,"max":32356,"p95":32356.0,"q25":32356.0,"q75":32356.0,"sd":30.666666666666668,"median_ci95":[32356.0,32356.0]}}},{"suite":"cpu","scenario":"table_completion","variant":"candidate","objects":5000,"metrics":{"wall_ms":{"n":9,"median":8.680679000462987,"mean":8.66810377788675,"min":8.478585999910138,"max":8.795855000244046,"p95":8.792725800049084,"q25":8.629121000012674,"q75":8.752996999646712,"sd":0.11250704947076813,"median_ci95":[8.524515000317479,8.78803199975664]},"cpu_ms":{"n":9,"median":8.655928000000007,"mean":8.63540211111111,"min":8.432198000000001,"max":8.771314000000002,"p95":8.766003999999999,"q25":8.590711,"q75":8.723395999999967,"sd":0.11713537956083162,"median_ci95":[8.495664000000014,8.758038999999995]},"maxrss_kib":{"n":9,"median":32356,"mean":32356,"min":32356,"max":32356,"p95":32356.0,"q25":32356.0,"q75":32356.0,"sd":0.0,"median_ci95":[32356.0,32356.0]}}},{"suite":"cpu","scenario":"unrelated_completion","variant":"candidate","objects":5000,"metrics":{"wall_ms":{"n":9,"median":3.4037879995594267,"mean":3.719624999879064,"min":3.2200629993894836,"max":6.725508999807062,"p95":5.429077799635706,"q25":3.2541560003664927,"q75":3.442692000135139,"sd":1.13176112275364,"median_ci95":[3.2509100001334446,3.4844309993786737]},"cpu_ms":{"n":9,"median":3.3861820000000153,"mean":3.686260111111111,"min":3.202694000000006,"max":6.689730000000004,"p95":5.382012800000001,"q25":3.2318029999999776,"q75":3.4050869999999733,"sd":1.1301276143586023,"median_ci95":[3.2054460000000007,3.4204369999999984]},"maxrss_kib":{"n":9,"median":32356,"mean":32356,"min":32356,"max":32356,"p95":32356.0,"q25":32356.0,"q75":32356.0,"sd":0.0,"median_ci95":[32356.0,32356.0]}}},{"suite":"cpu","scenario":"blank_completion","variant":"candidate","objects":5000,"metrics":{"wall_ms":{"n":9,"median":0.00028700014809146523,"mean":0.0003496666573078579,"min":0.00024400014808634296,"max":0.0006849995770608075,"p95":0.0005789997885585761,"q25":0.0002570004653534852,"q75":0.00040200029616244137,"sd":0.00014126382337789994,"median_ci95":[0.0002449996827635914,0.0004200001058052294]},"cpu_ms":{"n":9,"median":0.0006780000000317088,"mean":0.0009097777777800076,"min":0.000570999999949251,"max":0.0023189999999728705,"p95":0.001876999999994577,"q25":0.0006000000000172534,"q75":0.0008459999999987922,"sd":0.0005648198336064565,"median_ci95":[0.000583000000053957,0.0012140000000271378]},"maxrss_kib":{"n":9,"median":32356,"mean":32356,"min":32356,"max":32356,"p95":32356.0,"q25":32356.0,"q75":32356.0,"sd":0.0,"median_ci95":[32356.0,32356.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":11.497858999973687,"mean":13.215376666569986,"min":9.911465000186581,"max":22.93482999994012,"p95":20.47403920005308,"q25":10.623489999488811,"q75":13.627903999804403,"sd":4.20207534438826,"median_ci95":[10.39620399933483,16.78285300022253]},"client_cpu_ms":{"n":9,"median":1.761012999999867,"mean":1.9460666666666133,"min":1.409186999999923,"max":3.148834999999961,"p95":2.934459399999989,"q25":1.640766999999821,"q75":1.9496830000000076,"sd":0.5730740741145817,"median_ci95":[1.4643699999999926,2.612896000000031]},"maxrss_kib":{"n":9,"median":60360,"mean":59152.444444444445,"min":49088,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":3774.742610798487,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":5800,"mean":5800,"min":5800,"max":5800,"p95":5800.0,"q25":5800.0,"q75":5800.0,"sd":0.0,"median_ci95":[5800.0,5800.0]},"tx_bytes":{"n":9,"median":4140,"mean":4140,"min":4140,"max":4140,"p95":4140.0,"q25":4140.0,"q75":4140.0,"sd":0.0,"median_ci95":[4140.0,4140.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":120.43380999966757,"mean":124.43165888897865,"min":107.79639300017152,"max":144.94640000066283,"p95":143.57535560029646,"q25":117.19124800038117,"q75":130.61709399971733,"sd":12.695470703947073,"median_ci95":[111.26201099978061,141.5187889997469]},"client_cpu_ms":{"n":9,"median":118.30629000000003,"mean":118.71358688888888,"min":106.65905699999989,"max":133.83339100000003,"p95":130.8396614,"q25":109.51923699999999,"q75":123.88103100000004,"sd":8.981939839681825,"median_ci95":[109.51923699999999,126.34906699999998]},"maxrss_kib":{"n":9,"median":60360,"mean":60413.333333333336,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":66.48308055437865,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":13439025,"mean":13439025,"min":13439025,"max":13439025,"p95":13439025.0,"q25":13439025.0,"q75":13439025.0,"sd":0.0,"median_ci95":[13439025.0,13439025.0]},"tx_bytes":{"n":9,"median":39,"mean":39,"min":39,"max":39,"p95":39.0,"q25":39.0,"q75":39.0,"sd":0.0,"median_ci95":[39.0,39.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":3.458918999967864,"mean":2.8925218889020874,"min":1.4965829996071989,"max":4.290977999517054,"p95":4.215700799795741,"q25":1.570178000292799,"q75":3.947076999793353,"sd":1.2726999200657552,"median_ci95":[1.5432800000780844,4.102785000213771]},"client_cpu_ms":{"n":9,"median":2.2110950000000518,"mean":1.6232153333333597,"min":0.36954899999996904,"max":2.959051999999962,"p95":2.8519544000000008,"q25":0.439265000000022,"q75":2.5430349999999713,"sd":1.1600091701063069,"median_ci95":[0.39757700000009333,2.691308000000059]},"maxrss_kib":{"n":9,"median":60360,"mean":60404.88888888889,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":68.05226749426583,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":2399,"mean":2399,"min":2399,"max":2399,"p95":2399.0,"q25":2399.0,"q75":2399.0,"sd":0.0,"median_ci95":[2399.0,2399.0]},"tx_bytes":{"n":9,"median":226,"mean":226,"min":226,"max":226,"p95":226.0,"q25":226.0,"q75":226.0,"sd":0.0,"median_ci95":[226.0,226.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":0.6592699992324924,"mean":0.9125828889106439,"min":0.4534270001386176,"max":2.822571000251628,"p95":2.1580374001132436,"q25":0.5281230005493853,"q75":0.7804249999026069,"sd":0.7468325123278798,"median_ci95":[0.49805600065155886,1.1612369999056682]},"client_cpu_ms":{"n":9,"median":0.1702999999999566,"mean":0.4154331111110977,"min":0.11943199999997489,"max":2.2442940000000355,"p95":1.4798380000000215,"q25":0.15410700000001443,"q75":0.20959899999994924,"sd":0.6886302697062018,"median_ci95":[0.14622699999999877,0.33315400000000217]},"maxrss_kib":{"n":9,"median":60360,"mean":60413.333333333336,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":66.48308055437865,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":56,"mean":56,"min":56,"max":56,"p95":56.0,"q25":56.0,"q75":56.0,"sd":0.0,"median_ci95":[56.0,56.0]},"tx_bytes":{"n":9,"median":13,"mean":13,"min":13,"max":13,"p95":13.0,"q25":13.0,"q75":13.0,"sd":0.0,"median_ci95":[13.0,13.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":3.7658719993487466,"mean":4.160406666718093,"min":3.2991960006256704,"max":5.409308999333007,"p95":5.3025177998279105,"q25":3.608426999562653,"q75":4.691112000728026,"sd":0.790206101613033,"median_ci95":[3.3130500005427166,5.142331000570266]},"client_cpu_ms":{"n":9,"median":2.8799820000000587,"mean":2.844340333333368,"min":2.3706910000000914,"max":3.248430000000191,"p95":3.1723020000001156,"q25":2.727785000000038,"q75":3.0103139999999584,"sd":0.2687983706577441,"median_ci95":[2.5832750000000515,3.0581100000000028]},"maxrss_kib":{"n":9,"median":60360,"mean":60400.88888888889,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60436.0,"sd":64.58413977991123,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":267292,"mean":267292,"min":267292,"max":267292,"p95":267292.0,"q25":267292.0,"q75":267292.0,"sd":0.0,"median_ci95":[267292.0,267292.0]},"tx_bytes":{"n":9,"median":50,"mean":50,"min":50,"max":50,"p95":50.0,"q25":50.0,"q75":50.0,"sd":0.0,"median_ci95":[50.0,50.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":70.55669200053671,"mean":70.80764733341817,"min":63.00486100008129,"max":83.20673299931514,"p95":80.00967899970419,"q25":66.71989400001621,"q75":74.24050700046791,"sd":6.2063051273066066,"median_ci95":[64.30035900029907,75.21409800028778]},"client_cpu_ms":{"n":9,"median":66.65670299999982,"mean":66.21566622222213,"min":60.34316999999989,"max":72.34359199999996,"p95":71.93721599999985,"q25":64.123484,"q75":67.5716099999999,"sd":4.166009860656467,"median_ci95":[60.39131499999995,71.32765199999969]},"maxrss_kib":{"n":9,"median":60360,"mean":60404.88888888889,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":68.05226749426583,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":13439081,"mean":13439081,"min":13439081,"max":13439081,"p95":13439081.0,"q25":13439081.0,"q75":13439081.0,"sd":0.0,"median_ci95":[13439081.0,13439081.0]},"tx_bytes":{"n":9,"median":52,"mean":52,"min":52,"max":52,"p95":52.0,"q25":52.0,"q75":52.0,"sd":0.0,"median_ci95":[52.0,52.0]},"first_fetch_ms":{"n":9,"median":3.9663400002609706,"mean":4.332548111253548,"min":3.5654929997690488,"max":5.5771970000932924,"p95":5.36836659994151,"q25":3.651949000413879,"q75":4.860529000325187,"sd":0.7537272268163692,"median_ci95":[3.6164780003673513,5.055120999713836]},"first_fetch_rx_bytes":{"n":9,"median":1900544,"mean":1940529,"min":393216,"max":3375104,"p95":3217817.5999999996,"q25":1637817.0,"q75":2310144.0,"sd":920671.7609273134,"median_ci95":[983040.0,2981888.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":2.1202469997660955,"mean":2.215929888835591,"min":1.9498960000419174,"max":2.638042999933532,"p95":2.568736600187549,"q25":2.0848439999099355,"q75":2.275363000080688,"sd":0.21744602745596647,"median_ci95":[2.057736999631743,2.4647770005685743]},"client_cpu_ms":{"n":9,"median":0.6109290000000378,"mean":0.6074045555555796,"min":0.48548299999984224,"max":0.8072789999999941,"p95":0.7627546000000152,"q25":0.5141250000000319,"q75":0.657169000000013,"sd":0.10719018659624276,"median_ci95":[0.5061639999999756,0.6959680000000468]},"maxrss_kib":{"n":9,"median":60360,"mean":60409.77777777778,"min":60360,"max":60508,"p95":60493.6,"q25":60360.0,"q75":60472.0,"sd":61.71259550889465,"median_ci95":[60360.0,60472.0]},"rx_bytes":{"n":9,"median":408,"mean":408,"min":408,"max":408,"p95":408.0,"q25":408.0,"q75":408.0,"sd":0.0,"median_ci95":[408.0,408.0]},"tx_bytes":{"n":9,"median":240,"mean":240,"min":240,"max":240,"p95":240.0,"q25":240.0,"q75":240.0,"sd":0.0,"median_ci95":[240.0,240.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"mariadb","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":17.48068099914235,"mean":21.07715488879573,"min":12.326801000199339,"max":33.2642270004726,"p95":33.12149460034561,"q25":16.471002999423945,"q75":24.390214000050037,"sd":7.502941023822451,"median_ci95":[16.28640099988843,32.90739600015513]},"client_cpu_ms":{"n":9,"median":3.1717030000000257,"mean":3.5281326666666404,"min":1.978731999999983,"max":5.845110999999958,"p95":5.437344199999972,"q25":2.7145060000000054,"q75":3.9027289999999937,"sd":1.2140219027814148,"median_ci95":[2.6445219999999825,4.8256939999999915]},"maxrss_kib":{"n":9,"median":60360,"mean":60404.88888888889,"min":60360,"max":60508,"p95":60506.4,"q25":60360.0,"q75":60472.0,"sd":68.05226749426583,"median_ci95":[60360.0,60504.0]},"rx_bytes":{"n":9,"median":7360,"mean":7360,"min":7360,"max":7360,"p95":7360.0,"q25":7360.0,"q75":7360.0,"sd":0.0,"median_ci95":[7360.0,7360.0]},"tx_bytes":{"n":9,"median":5960,"mean":5960,"min":5960,"max":5960,"p95":5960.0,"q25":5960.0,"q75":5960.0,"sd":0.0,"median_ci95":[5960.0,5960.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":833.6586920004265,"mean":832.9625581110223,"min":824.6928039998238,"max":842.4254359997576,"p95":840.6424844000867,"q25":828.2684050000171,"q75":837.3867499994958,"sd":5.7045485485965255,"median_ci95":[828.0446079998001,837.9680570005803]},"client_cpu_ms":{"n":9,"median":4.44110200000003,"mean":4.227546222222224,"min":3.4179330000000396,"max":4.675880000000077,"p95":4.640022799999977,"q25":3.896716000000078,"q75":4.557860000000025,"sd":0.44640592904041015,"median_ci95":[3.7366269999999924,4.5862369999998265]},"maxrss_kib":{"n":9,"median":60208,"mean":58996.88888888889,"min":49152,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":3691.9007450243175,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":5800,"mean":5800,"min":5800,"max":5800,"p95":5800.0,"q25":5800.0,"q75":5800.0,"sd":0.0,"median_ci95":[5800.0,5800.0]},"tx_bytes":{"n":9,"median":4140,"mean":4140,"min":4140,"max":4140,"p95":4140.0,"q25":4140.0,"q75":4140.0,"sd":0.0,"median_ci95":[4140.0,4140.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":155.95739299988054,"mean":153.00040322219704,"min":132.27439700040122,"max":181.68322800011083,"p95":172.25853439995262,"q25":148.51495000038994,"q75":157.53483499975118,"sd":14.282266679948616,"median_ci95":[136.2545419997332,158.1214939997153]},"client_cpu_ms":{"n":9,"median":107.80388899999993,"mean":106.09927544444442,"min":81.88531599999993,"max":128.476802,"p95":123.04511039999996,"q25":106.33683000000005,"q75":113.15475399999997,"sd":14.224805217351172,"median_ci95":[86.35483899999996,114.89757299999992]},"maxrss_kib":{"n":9,"median":60228,"mean":60228.444444444445,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":22.489503724577332,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":13439025,"mean":13439025,"min":13439025,"max":13439025,"p95":13439025.0,"q25":13439025.0,"q75":13439025.0,"sd":0.0,"median_ci95":[13439025.0,13439025.0]},"tx_bytes":{"n":9,"median":39,"mean":39,"min":39,"max":39,"p95":39.0,"q25":39.0,"q75":39.0,"sd":0.0,"median_ci95":[39.0,39.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":43.67876400010573,"mean":43.35587611098567,"min":41.707980999490246,"max":44.72389300008217,"p95":44.710000200029754,"q25":42.19141399971704,"q75":44.57276500033913,"sd":1.2834278951493088,"median_ci95":[42.07911199955561,44.68916099995113]},"client_cpu_ms":{"n":9,"median":2.1829299999999163,"mean":1.7531227777777578,"min":0.3702580000000122,"max":3.4058759999999744,"p95":3.1601840000000436,"q25":0.5330019999998381,"q75":2.7697179999999766,"sd":1.238016537887739,"median_ci95":[0.4769920000000649,2.7916460000001475]},"maxrss_kib":{"n":9,"median":60228,"mean":60227.555555555555,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":22.31093404090868,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":2399,"mean":2399,"min":2399,"max":2399,"p95":2399.0,"q25":2399.0,"q75":2399.0,"sd":0.0,"median_ci95":[2399.0,2399.0]},"tx_bytes":{"n":9,"median":226,"mean":226,"min":226,"max":226,"p95":226.0,"q25":226.0,"q75":226.0,"sd":0.0,"median_ci95":[226.0,226.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":41.185533000316354,"mean":41.41286900004262,"min":41.03710500021407,"max":43.05338199992548,"p95":42.55764240006101,"q25":41.054799999983516,"q75":41.25268000007054,"sd":0.661088456977158,"median_ci95":[41.053705000194896,41.81403300026432]},"client_cpu_ms":{"n":9,"median":0.24575800000015136,"mean":0.4284422222222386,"min":0.15750999999997184,"max":2.0021120000000003,"p95":1.3246419999999752,"q25":0.18516800000001332,"q75":0.28106000000005515,"sd":0.592213379889114,"median_ci95":[0.1795709999999895,0.30843699999993923]},"maxrss_kib":{"n":9,"median":60228,"mean":60228.444444444445,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":22.489503724577332,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":56,"mean":56,"min":56,"max":56,"p95":56.0,"q25":56.0,"q75":56.0,"sd":0.0,"median_ci95":[56.0,56.0]},"tx_bytes":{"n":9,"median":13,"mean":13,"min":13,"max":13,"p95":13.0,"q25":13.0,"q75":13.0,"sd":0.0,"median_ci95":[13.0,13.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":44.326877999992575,"mean":44.007448888906865,"min":42.904894000457716,"max":44.6657940001387,"p95":44.65815960011241,"q25":43.213125999500335,"q75":44.49475199999142,"sd":0.7125026859103822,"median_ci95":[43.13026399995579,44.64670800007298]},"client_cpu_ms":{"n":9,"median":2.971470999999948,"mean":2.624007222222218,"min":1.9447320000000046,"max":3.371376000000037,"p95":3.2913896000000387,"q25":2.080729999999975,"q75":3.006948999999981,"sd":0.5843932138014847,"median_ci95":[1.949754999999831,3.171410000000041]},"maxrss_kib":{"n":9,"median":60228,"mean":60227.555555555555,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":22.31093404090868,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":267292,"mean":267292,"min":267292,"max":267292,"p95":267292.0,"q25":267292.0,"q75":267292.0,"sd":0.0,"median_ci95":[267292.0,267292.0]},"tx_bytes":{"n":9,"median":50,"mean":50,"min":50,"max":50,"p95":50.0,"q25":50.0,"q75":50.0,"sd":0.0,"median_ci95":[50.0,50.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":156.59218699966004,"mean":156.41564422235712,"min":148.32404000026145,"max":163.1946240004254,"p95":161.93620720023318,"q25":153.26133000053233,"q75":159.84463699987828,"sd":4.694113202633941,"median_ci95":[152.13410799970006,159.84463699987828]},"client_cpu_ms":{"n":9,"median":65.40528400000012,"mean":58.694460444444445,"min":44.67668199999997,"max":70.15616499999999,"p95":69.74259100000002,"q25":46.26916599999997,"q75":69.02183399999996,"sd":11.482584143565646,"median_ci95":[45.54725000000004,69.12223000000006]},"maxrss_kib":{"n":9,"median":60208,"mean":60225.333333333336,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":23.2379000772445,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":13439081,"mean":13439081,"min":13439081,"max":13439081,"p95":13439081.0,"q25":13439081.0,"q75":13439081.0,"sd":0.0,"median_ci95":[13439081.0,13439081.0]},"tx_bytes":{"n":9,"median":52,"mean":52,"min":52,"max":52,"p95":52.0,"q25":52.0,"q75":52.0,"sd":0.0,"median_ci95":[52.0,52.0]},"first_fetch_ms":{"n":9,"median":44.91218599923741,"mean":44.7566318887564,"min":43.32667800008494,"max":46.11431499961327,"p95":46.06799419980234,"q25":44.09549699994386,"q75":45.69071000059921,"sd":1.049520094204468,"median_ci95":[43.417926999609335,45.99851300008595]},"first_fetch_rx_bytes":{"n":9,"median":1097728,"mean":1611093.3333333333,"min":425984,"max":2818048,"p95":2719744.0,"q25":851968.0,"q75":2490368.0,"sd":950801.5076471008,"median_ci95":[753664.0,2572288.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":226.61456700006966,"mean":226.67673500008175,"min":225.776623999991,"max":227.69036999943637,"p95":227.5895759996274,"q25":226.04905600019265,"q75":227.30601700004627,"sd":0.7072650328662182,"median_ci95":[225.82759100077965,227.43838499991398]},"client_cpu_ms":{"n":9,"median":1.2618340000001282,"mean":1.270363333333302,"min":1.0373849999999463,"max":1.469712000000012,"p95":1.4629955999999833,"q25":1.1941309999999872,"q75":1.3370259999998524,"sd":0.14050665826661232,"median_ci95":[1.1331569999999402,1.4529209999999404]},"maxrss_kib":{"n":9,"median":60208,"mean":60223.555555555555,"min":60208,"max":60264,"p95":60252.8,"q25":60208.0,"q75":60236.0,"sd":20.34152840318981,"median_ci95":[60208.0,60236.0]},"rx_bytes":{"n":9,"median":408,"mean":408,"min":408,"max":408,"p95":408.0,"q25":408.0,"q75":408.0,"sd":0.0,"median_ci95":[408.0,408.0]},"tx_bytes":{"n":9,"median":240,"mean":240,"min":240,"max":240,"p95":240.0,"q25":240.0,"q75":240.0,"sd":0.0,"median_ci95":[240.0,240.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"mariadb","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":1660.8558600000833,"mean":1660.5890234443198,"min":1652.0406820000062,"max":1671.601176999502,"p95":1668.191374199705,"q25":1657.8025749995504,"q75":1662.6376469994284,"sd":5.414734860260641,"median_ci95":[1656.9875320001302,1663.0766700000095]},"client_cpu_ms":{"n":9,"median":7.836642000000005,"mean":8.017673444444423,"min":6.597524999999993,"max":9.691555000000074,"p95":9.592039400000063,"q25":7.267326000000018,"q75":8.88079399999997,"sd":1.0896667528504338,"median_ci95":[6.965391999999904,9.442766000000047]},"maxrss_kib":{"n":9,"median":60208,"mean":60225.333333333336,"min":60208,"max":60264,"p95":60262.4,"q25":60208.0,"q75":60236.0,"sd":23.2379000772445,"median_ci95":[60208.0,60260.0]},"rx_bytes":{"n":9,"median":7360,"mean":7360,"min":7360,"max":7360,"p95":7360.0,"q25":7360.0,"q75":7360.0,"sd":0.0,"median_ci95":[7360.0,7360.0]},"tx_bytes":{"n":9,"median":5960,"mean":5960,"min":5960,"max":5960,"p95":5960.0,"q25":5960.0,"q75":5960.0,"sd":0.0,"median_ci95":[5960.0,5960.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":17.043122999893967,"mean":18.84403244447539,"min":14.205722000042442,"max":27.295992999825103,"p95":26.410081799804175,"q25":15.799720999893907,"q75":20.41701399957674,"sd":4.563606206197649,"median_ci95":[15.09990900012781,25.081214999772783]},"client_cpu_ms":{"n":9,"median":2.3107919999998394,"mean":2.4366845555555066,"min":1.6997119999999644,"max":3.1831539999999103,"p95":3.163957199999934,"q25":2.2294200000000375,"q75":2.474122999999828,"sd":0.4668300230458792,"median_ci95":[2.1767609999999715,3.135161999999969]},"maxrss_kib":{"n":9,"median":62488,"mean":61351.11111111111,"min":52064,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":3482.888903067554,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":5840,"mean":5840,"min":5840,"max":5840,"p95":5840.0,"q25":5840.0,"q75":5840.0,"sd":0.0,"median_ci95":[5840.0,5840.0]},"tx_bytes":{"n":9,"median":4140,"mean":4140,"min":4140,"max":4140,"p95":4140.0,"q25":4140.0,"q75":4140.0,"sd":0.0,"median_ci95":[4140.0,4140.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":123.98058500002662,"mean":126.24307688899232,"min":110.17372900005284,"max":143.6833130001105,"p95":143.0537230002301,"q25":122.43076599952474,"q75":127.90653200045199,"sd":10.920237505228975,"median_ci95":[116.01184600021952,142.10933800040948]},"client_cpu_ms":{"n":9,"median":120.28628699999999,"mean":119.99219566666665,"min":108.82921499999986,"max":128.453288,"p95":127.89974799999996,"q25":118.70113800000004,"q75":122.76383800000002,"sd":6.2922383071208,"median_ci95":[112.686795,127.06943799999992]},"maxrss_kib":{"n":9,"median":62488,"mean":62500.444444444445,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":52.43832355994781,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":13439025,"mean":13439025,"min":13439025,"max":13439025,"p95":13439025.0,"q25":13439025.0,"q75":13439025.0,"sd":0.0,"median_ci95":[13439025.0,13439025.0]},"tx_bytes":{"n":9,"median":39,"mean":39,"min":39,"max":39,"p95":39.0,"q25":39.0,"q75":39.0,"sd":0.0,"median_ci95":[39.0,39.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":3.9081739996618126,"mean":3.449291666786141,"min":1.8995669997821096,"max":5.005300000448187,"p95":4.8100572001203545,"q25":2.2892890001458,"q75":4.506416000367608,"sd":1.1920336839322971,"median_ci95":[2.1074070000395295,4.517192999628605]},"client_cpu_ms":{"n":9,"median":2.3234250000001566,"mean":1.6610242222222331,"min":0.4347180000000561,"max":3.198827000000015,"p95":3.002316599999999,"q25":0.4355409999998727,"q75":2.4971160000000214,"sd":1.1823672278784556,"median_ci95":[0.4349200000000053,2.7075509999999747]},"maxrss_kib":{"n":9,"median":62488,"mean":62500.444444444445,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":52.43832355994781,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":2400,"mean":2400,"min":2400,"max":2400,"p95":2400.0,"q25":2400.0,"q75":2400.0,"sd":0.0,"median_ci95":[2400.0,2400.0]},"tx_bytes":{"n":9,"median":226,"mean":226,"min":226,"max":226,"p95":226.0,"q25":226.0,"q75":226.0,"sd":0.0,"median_ci95":[226.0,226.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":0.6745709997630911,"mean":1.0019492221747188,"min":0.5893570005355286,"max":3.659021000203211,"p95":2.5057885999558485,"q25":0.6424450002668891,"q75":0.6967529998291866,"sd":0.9977142572821304,"median_ci95":[0.6308920001174556,0.7759399995848071]},"client_cpu_ms":{"n":9,"median":0.17917899999997378,"mean":0.41305088888888963,"min":0.16322899999998697,"max":2.2550019999998394,"p95":1.4384951999999,"q25":0.17510600000014698,"q75":0.20792700000016318,"sd":0.690952786389402,"median_ci95":[0.1632309999999304,0.21373499999999268]},"maxrss_kib":{"n":9,"median":62488,"mean":62500.444444444445,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":52.43832355994781,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":56,"mean":56,"min":56,"max":56,"p95":56.0,"q25":56.0,"q75":56.0,"sd":0.0,"median_ci95":[56.0,56.0]},"tx_bytes":{"n":9,"median":13,"mean":13,"min":13,"max":13,"p95":13.0,"q25":13.0,"q75":13.0,"sd":0.0,"median_ci95":[13.0,13.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":3.7755339999421267,"mean":4.054940777677984,"min":3.2863629994608345,"max":6.491906000519521,"p95":5.557521599985193,"q25":3.62879200019961,"q75":3.9342729996860726,"sd":0.944928414857939,"median_ci95":[3.6073310002393555,4.155944999183703]},"client_cpu_ms":{"n":9,"median":2.8766169999999702,"mean":2.913342555555476,"min":2.5942840000000023,"max":3.637370999999945,"p95":3.3712833999999248,"q25":2.69409899999995,"q75":2.959263999999906,"sd":0.3033564668550563,"median_ci95":[2.6842179999997384,2.9721519999998947]},"maxrss_kib":{"n":9,"median":62488,"mean":62499.555555555555,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62488.0,"sd":52.59066245806168,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":267292,"mean":267292,"min":267292,"max":267292,"p95":267292.0,"q25":267292.0,"q75":267292.0,"sd":0.0,"median_ci95":[267292.0,267292.0]},"tx_bytes":{"n":9,"median":50,"mean":50,"min":50,"max":50,"p95":50.0,"q25":50.0,"q75":50.0,"sd":0.0,"median_ci95":[50.0,50.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":79.38194100006513,"mean":77.88385277783365,"min":64.60536499980662,"max":88.31594100047369,"p95":88.1064786004572,"q25":71.26722799966956,"q75":86.59488700050133,"sd":8.541373520534385,"median_ci95":[70.82215099944733,86.59488700050133]},"client_cpu_ms":{"n":9,"median":72.30929600000002,"mean":70.30787055555557,"min":60.56312500000005,"max":75.61598000000002,"p95":75.277764,"q25":67.992104,"q75":72.85560300000004,"sd":4.660003530292031,"median_ci95":[67.34439700000006,72.85560300000004]},"maxrss_kib":{"n":9,"median":62488,"mean":62500.444444444445,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":52.43832355994781,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":13439081,"mean":13439081,"min":13439081,"max":13439081,"p95":13439081.0,"q25":13439081.0,"q75":13439081.0,"sd":0.0,"median_ci95":[13439081.0,13439081.0]},"tx_bytes":{"n":9,"median":52,"mean":52,"min":52,"max":52,"p95":52.0,"q25":52.0,"q75":52.0,"sd":0.0,"median_ci95":[52.0,52.0]},"first_fetch_ms":{"n":9,"median":4.845833000217681,"mean":5.347462777839003,"min":3.3818369993241504,"max":8.488594000482408,"p95":8.202250800422917,"q25":3.632756000115478,"q75":7.499479999751202,"sd":2.0369914311192887,"median_ci95":[3.422716000386572,7.77273600033368]},"first_fetch_rx_bytes":{"n":9,"median":1785856,"mean":2071648.111111111,"min":1130496,"max":3424256,"p95":3181772.8,"q25":1589248.0,"q75":2473984.0,"sd":720759.4666073496,"median_ci95":[1523712.0,2818048.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":2.1425599998110556,"mean":2.568193110972869,"min":1.8408910000289325,"max":4.20633799967618,"p95":3.917903999717964,"q25":1.9989570000689127,"q75":3.2656869998390903,"sd":0.8569334289212313,"median_ci95":[1.9236119997003698,3.4852529997806414]},"client_cpu_ms":{"n":9,"median":0.5856129999999293,"mean":0.6451419999999628,"min":0.4726710000000356,"max":0.8701190000000025,"p95":0.8662005999999778,"q25":0.5170310000000011,"q75":0.8242659999999624,"sd":0.16165521061738575,"median_ci95":[0.4892239999998438,0.8603229999999407]},"maxrss_kib":{"n":9,"median":62488,"mean":62491.11111111111,"min":62408,"max":62580,"p95":62546.4,"q25":62488.0,"q75":62496.0,"sd":43.16377081663639,"median_ci95":[62488.0,62496.0]},"rx_bytes":{"n":9,"median":247,"mean":247,"min":247,"max":247,"p95":247.0,"q25":247.0,"q75":247.0,"sd":0.0,"median_ci95":[247.0,247.0]},"tx_bytes":{"n":9,"median":231,"mean":231,"min":231,"max":231,"p95":231.0,"q25":231.0,"q75":231.0,"sd":0.0,"median_ci95":[231.0,231.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"mysql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":36.51849600009882,"mean":39.208142777776324,"min":30.715199999576726,"max":56.74854100016091,"p95":53.54650940007559,"q25":32.121669999469304,"q75":43.78672200073197,"sd":9.03587154698133,"median_ci95":[31.719075000182784,43.78672200073197]},"client_cpu_ms":{"n":9,"median":4.283349000000047,"mean":4.684648333333307,"min":3.3888549999999684,"max":6.601965999999848,"p95":6.350261199999885,"q25":3.8618569999999686,"q75":5.4869570000000145,"sd":1.1510559307961228,"median_ci95":[3.5334509999999653,5.4869570000000145]},"maxrss_kib":{"n":9,"median":62488,"mean":62500.444444444445,"min":62408,"max":62580,"p95":62580.0,"q25":62488.0,"q75":62496.0,"sd":52.43832355994781,"median_ci95":[62488.0,62580.0]},"rx_bytes":{"n":9,"median":6720,"mean":6720,"min":6720,"max":6720,"p95":6720.0,"q25":6720.0,"q75":6720.0,"sd":0.0,"median_ci95":[6720.0,6720.0]},"tx_bytes":{"n":9,"median":5960,"mean":5960,"min":5960,"max":5960,"p95":5960.0,"q25":5960.0,"q75":5960.0,"sd":0.0,"median_ci95":[5960.0,5960.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":837.7198759999374,"mean":838.7843425555022,"min":833.5855089999313,"max":849.1025579996858,"p95":846.3543723997645,"q25":836.4204719991903,"q75":838.5984440001266,"sd":4.510844531097726,"median_ci95":[835.8901640003751,842.2320939998826]},"client_cpu_ms":{"n":9,"median":3.872612999999969,"mean":3.8783664444444352,"min":3.6839750000000615,"max":4.13771900000004,"p95":4.110320599999984,"q25":3.7296099999999943,"q75":3.992044999999944,"sd":0.17189535161405106,"median_ci95":[3.707702000000035,4.0692229999999]},"maxrss_kib":{"n":9,"median":62276,"mean":61200.88888888889,"min":51800,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":3526.751353740594,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":5840,"mean":5840,"min":5840,"max":5840,"p95":5840.0,"q25":5840.0,"q75":5840.0,"sd":0.0,"median_ci95":[5840.0,5840.0]},"tx_bytes":{"n":9,"median":4140,"mean":4140,"min":4140,"max":4140,"p95":4140.0,"q25":4140.0,"q75":4140.0,"sd":0.0,"median_ci95":[4140.0,4140.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":163.16324600029475,"mean":164.66811066665184,"min":156.8932299996959,"max":179.30385199997545,"p95":176.04081519984902,"q25":159.2453929997646,"q75":167.28615499960142,"sd":7.1184334531315265,"median_ci95":[158.2118320002337,171.14625999965938]},"client_cpu_ms":{"n":9,"median":117.11974400000003,"mean":117.60752499999995,"min":106.04776299999996,"max":132.564586,"p95":127.95247759999997,"q25":114.59147799999991,"q75":119.87383300000002,"sd":7.112183044449558,"median_ci95":[113.09836699999987,121.03431499999995]},"maxrss_kib":{"n":9,"median":62476,"mean":62387.11111111111,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":13439025,"mean":13439025,"min":13439025,"max":13439025,"p95":13439025.0,"q25":13439025.0,"q75":13439025.0,"sd":0.0,"median_ci95":[13439025.0,13439025.0]},"tx_bytes":{"n":9,"median":39,"mean":39,"min":39,"max":39,"p95":39.0,"q25":39.0,"q75":39.0,"sd":0.0,"median_ci95":[39.0,39.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":44.17957700024999,"mean":43.71266266672238,"min":42.39209099978325,"max":45.1261810003416,"p95":45.08247780013335,"q25":42.42703199997777,"q75":44.59125299945299,"sd":1.1569833268356786,"median_ci95":[42.4046879998059,44.59125299945299]},"client_cpu_ms":{"n":9,"median":2.2566529999998863,"mean":1.6105332222222226,"min":0.4167340000000852,"max":2.9799359999999053,"p95":2.880471999999945,"q25":0.43968700000007743,"q75":2.4499139999999975,"sd":1.1273842199244128,"median_ci95":[0.43931799999996635,2.4499139999999975]},"maxrss_kib":{"n":9,"median":62476,"mean":62387.11111111111,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":2400,"mean":2400,"min":2400,"max":2400,"p95":2400.0,"q25":2400.0,"q75":2400.0,"sd":0.0,"median_ci95":[2400.0,2400.0]},"tx_bytes":{"n":9,"median":226,"mean":226,"min":226,"max":226,"p95":226.0,"q25":226.0,"q75":226.0,"sd":0.0,"median_ci95":[226.0,226.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":41.52900600001885,"mean":41.94906399991143,"min":41.028060999451554,"max":44.15643800075486,"p95":43.91225920026045,"q25":41.0636019996673,"q75":42.0184380000137,"sd":1.1527615854725177,"median_ci95":[41.053060999729496,43.545990999518835]},"client_cpu_ms":{"n":9,"median":0.20662300000001688,"mean":0.4269429999999821,"min":0.18803299999992085,"max":2.1207530000000308,"p95":1.3747838000000006,"q25":0.19427099999980157,"q75":0.24555999999997802,"sd":0.6357084774690553,"median_ci95":[0.19283199999997613,0.2558299999999569]},"maxrss_kib":{"n":9,"median":62476,"mean":62387.11111111111,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":56,"mean":56,"min":56,"max":56,"p95":56.0,"q25":56.0,"q75":56.0,"sd":0.0,"median_ci95":[56.0,56.0]},"tx_bytes":{"n":9,"median":13,"mean":13,"min":13,"max":13,"p95":13.0,"q25":13.0,"q75":13.0,"sd":0.0,"median_ci95":[13.0,13.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":44.16488199967716,"mean":44.66406711112035,"min":43.600619999779155,"max":49.49085199950787,"p95":47.42028799992113,"q25":44.043102000614454,"q75":44.192076999934216,"sd":1.821536544214044,"median_ci95":[43.927048000114155,44.31444200054102]},"client_cpu_ms":{"n":9,"median":2.9113419999999834,"mean":2.9060932222222267,"min":2.4220710000000256,"max":3.723499000000019,"p95":3.4195333999999407,"q25":2.8504590000000274,"q75":2.9330680000001497,"sd":0.3579418248478986,"median_ci95":[2.5710820000000023,2.9635849999998243]},"maxrss_kib":{"n":9,"median":62476,"mean":62387.11111111111,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":267292,"mean":267292,"min":267292,"max":267292,"p95":267292.0,"q25":267292.0,"q75":267292.0,"sd":0.0,"median_ci95":[267292.0,267292.0]},"tx_bytes":{"n":9,"median":50,"mean":50,"min":50,"max":50,"p95":50.0,"q25":50.0,"q75":50.0,"sd":0.0,"median_ci95":[50.0,50.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":161.23064200019144,"mean":167.42017188890816,"min":150.50749700003507,"max":208.52563199969154,"p95":195.24825039970892,"q25":160.2926670002489,"q75":168.0599239998628,"sd":16.955177243573036,"median_ci95":[156.20049399967684,175.332177999735]},"client_cpu_ms":{"n":9,"median":67.68978000000003,"mean":71.98327933333333,"min":66.99739399999993,"max":84.39367500000006,"p95":84.28302020000005,"q25":67.10710800000008,"q75":72.687002,"sd":7.215815617921576,"median_ci95":[67.02600299999995,84.11703800000004]},"maxrss_kib":{"n":9,"median":62276,"mean":62364.88888888889,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":13439081,"mean":13439081,"min":13439081,"max":13439081,"p95":13439081.0,"q25":13439081.0,"q75":13439081.0,"sd":0.0,"median_ci95":[13439081.0,13439081.0]},"tx_bytes":{"n":9,"median":52,"mean":52,"min":52,"max":52,"p95":52.0,"q25":52.0,"q75":52.0,"sd":0.0,"median_ci95":[52.0,52.0]},"first_fetch_ms":{"n":9,"median":45.44457300016802,"mean":47.71011300009478,"min":44.225102999917,"max":65.97577200045635,"p95":58.4643064004922,"q25":44.84870999931445,"q75":46.38835100013239,"sd":6.912524605064393,"median_ci95":[44.45009499977459,47.197108000545995]},"first_fetch_rx_bytes":{"n":9,"median":1507328,"mean":1523712,"min":1015808,"max":2031616,"p95":2018508.8,"q25":1212416.0,"q75":1835008.0,"sd":364060.4433332465,"median_ci95":[1196032.0,1998848.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":185.51556399961555,"mean":186.98529700001623,"min":184.75295600001118,"max":196.72794100006286,"p95":193.36467140019522,"q25":185.02887900012865,"q75":186.4885469994988,"sd":3.8167650280129783,"median_ci95":[184.81926200001908,188.31976700039377]},"client_cpu_ms":{"n":9,"median":0.8963300000000007,"mean":0.9087237777777251,"min":0.7936330000000158,"max":1.0969919999999078,"p95":1.0442899999999256,"q25":0.8546049999997862,"q75":0.9280259999999707,"sd":0.08634464572828729,"median_ci95":[0.8472479999999116,0.9652369999999522]},"maxrss_kib":{"n":9,"median":62276,"mean":62364.88888888889,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":247,"mean":247,"min":247,"max":247,"p95":247.0,"q25":247.0,"q75":247.0,"sd":0.0,"median_ci95":[247.0,247.0]},"tx_bytes":{"n":9,"median":231,"mean":231,"min":231,"max":231,"p95":231.0,"q25":231.0,"q75":231.0,"sd":0.0,"median_ci95":[231.0,231.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"mysql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":1673.0309410004338,"mean":1676.2099296668869,"min":1669.9807490003877,"max":1702.2137300000395,"p95":1691.5533328001402,"q25":1672.215540000252,"q75":1675.1060219994542,"sd":9.947226570911013,"median_ci95":[1670.2242380006282,1675.1060219994542]},"client_cpu_ms":{"n":9,"median":7.001821000000019,"mean":7.410778777777788,"min":6.883008000000079,"max":8.847700000000014,"p95":8.762824400000024,"q25":6.92390899999995,"q75":7.537714000000029,"sd":0.7822153781459177,"median_ci95":[6.894343000000025,8.63551100000004]},"maxrss_kib":{"n":9,"median":62276,"mean":62364.88888888889,"min":62276,"max":62476,"p95":62476.0,"q25":62276.0,"q75":62476.0,"sd":105.40925533894598,"median_ci95":[62276.0,62476.0]},"rx_bytes":{"n":9,"median":6720,"mean":6720,"min":6720,"max":6720,"p95":6720.0,"q25":6720.0,"q75":6720.0,"sd":0.0,"median_ci95":[6720.0,6720.0]},"tx_bytes":{"n":9,"median":5960,"mean":5960,"min":5960,"max":5960,"p95":5960.0,"q25":5960.0,"q75":5960.0,"sd":0.0,"median_ci95":[5960.0,5960.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":110.12776100051269,"mean":111.23706766678272,"min":96.93037099987123,"max":136.3120739997612,"p95":129.786399600016,"q25":102.05970100014383,"q75":119.18997999964631,"sd":12.384690830405965,"median_ci95":[99.15076800007228,119.99788800039823]},"client_cpu_ms":{"n":9,"median":1.436737999999993,"mean":1.4755073333333264,"min":1.1150329999999875,"max":1.9205750000000077,"p95":1.8327670000000074,"q25":1.3352299999999928,"q75":1.6820359999999979,"sd":0.2559523289081457,"median_ci95":[1.1939219999999862,1.7010550000000069]},"maxrss_kib":{"n":9,"median":55768,"mean":53900.88888888889,"min":39124,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":5541.441609465096,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":4820,"mean":4820,"min":4820,"max":4820,"p95":4820.0,"q25":4820.0,"q75":4820.0,"sd":0.0,"median_ci95":[4820.0,4820.0]},"tx_bytes":{"n":9,"median":15120,"mean":15120,"min":15120,"max":15120,"p95":15120.0,"q25":15120.0,"q75":15120.0,"sd":0.0,"median_ci95":[15120.0,15120.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":25.69303200016293,"mean":25.97403133343808,"min":18.42551099980483,"max":35.41744500034838,"p95":34.197525800118456,"q25":22.550022000359604,"q75":27.80324200011819,"sd":5.297257526693896,"median_ci95":[22.381431999747292,32.36764699977357]},"client_cpu_ms":{"n":9,"median":11.409507000000014,"mean":11.382434222222233,"min":10.815768000000004,"max":12.038658000000035,"p95":11.913874000000025,"q25":11.156949,"q75":11.450286000000004,"sd":0.3571181448035757,"median_ci95":[11.091021000000033,11.726698000000008]},"maxrss_kib":{"n":9,"median":55768,"mean":55730.22222222222,"min":55508,"max":55768,"p95":55768.0,"q25":55768.0,"q75":55768.0,"sd":87.43251365736,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":13788972,"mean":13788972,"min":13788972,"max":13788972,"p95":13788972.0,"q25":13788972.0,"q75":13788972.0,"sd":0.0,"median_ci95":[13788972.0,13788972.0]},"tx_bytes":{"n":9,"median":40,"mean":40,"min":40,"max":40,"p95":40.0,"q25":40.0,"q75":40.0,"sd":0.0,"median_ci95":[40.0,40.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":14.325459999781742,"mean":14.490843444339893,"min":13.450427999487147,"max":15.80471800025407,"p95":15.593830800389696,"q25":13.885102999665833,"q75":15.218595999613171,"sd":0.8122118140698483,"median_ci95":[13.586199999735982,15.277500000593136]},"client_cpu_ms":{"n":9,"median":0.15074799999997834,"mean":0.15151622222221872,"min":0.13991999999998783,"max":0.1706350000000023,"p95":0.1660293999999951,"q25":0.14366299999998833,"q75":0.15658899999998477,"sd":0.009931017316690239,"median_ci95":[0.14347200000003335,0.1591209999999843]},"maxrss_kib":{"n":9,"median":55768,"mean":55721.333333333336,"min":55508,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":87.17797887081348,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":3720,"mean":3720,"min":3720,"max":3720,"p95":3720.0,"q25":3720.0,"q75":3720.0,"sd":0.0,"median_ci95":[3720.0,3720.0]},"tx_bytes":{"n":9,"median":755,"mean":755,"min":755,"max":755,"p95":755.0,"q25":755.0,"q75":755.0,"sd":0.0,"median_ci95":[755.0,755.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":0.5633509999825037,"mean":0.5914515557176654,"min":0.472114000331203,"max":0.8486780006933259,"p95":0.7953460004500812,"q25":0.5035269996369607,"q75":0.611983999988297,"sd":0.1206297309969524,"median_ci95":[0.497431000439974,0.7153480000852142]},"client_cpu_ms":{"n":9,"median":0.09869299999998304,"mean":0.10085788888890125,"min":0.08840500000001361,"max":0.12574200000003977,"p95":0.11954680000002549,"q25":0.09150800000001791,"q75":0.10917600000004413,"sd":0.012166726854884857,"median_ci95":[0.08949599999999447,0.11025400000000407]},"maxrss_kib":{"n":9,"median":55768,"mean":55721.333333333336,"min":55508,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":87.17797887081348,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":66,"mean":66,"min":66,"max":66,"p95":66.0,"q25":66.0,"q75":66.0,"sd":0.0,"median_ci95":[66.0,66.0]},"tx_bytes":{"n":9,"median":14,"mean":14,"min":14,"max":14,"p95":14.0,"q25":14.0,"q75":14.0,"sd":0.0,"median_ci95":[14.0,14.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":1.5154900002016802,"mean":1.6483600001164531,"min":1.4018239999131765,"max":2.0864389998678234,"p95":2.0685958001195104,"q25":1.4508150006804499,"q75":1.7227910002475255,"sd":0.2626718127560693,"median_ci95":[1.4076580000619288,2.041831000497041]},"client_cpu_ms":{"n":9,"median":0.6576099999999752,"mean":0.6775438888888881,"min":0.6229719999999994,"max":0.7814849999999984,"p95":0.7546706000000014,"q25":0.6489100000000025,"q75":0.7020919999999875,"sd":0.04818492563666873,"median_ci95":[0.6466169999999605,0.7144490000000059]},"maxrss_kib":{"n":9,"median":55768,"mean":55721.333333333336,"min":55508,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":87.17797887081348,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":274245,"mean":274245,"min":274245,"max":274245,"p95":274245.0,"q25":274245.0,"q75":274245.0,"sd":0.0,"median_ci95":[274245.0,274245.0]},"tx_bytes":{"n":9,"median":51,"mean":51,"min":51,"max":51,"p95":51.0,"q25":51.0,"q75":51.0,"sd":0.0,"median_ci95":[51.0,51.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":2.396350999333663,"mean":2.547219999946214,"min":2.0070069995199447,"max":3.561028999683913,"p95":3.332584199597477,"q25":2.28661000073771,"q75":2.87224600015179,"sd":0.503024785134432,"median_ci95":[2.03651300034835,2.989916999467823]},"client_cpu_ms":{"n":9,"median":0.5027820000000349,"mean":0.50368355555556,"min":0.41720000000000645,"max":0.6356140000000066,"p95":0.6279740000000089,"q25":0.4263809999999757,"q75":0.5385709999999877,"sd":0.08468823388628695,"median_ci95":[0.42001600000002304,0.6165140000000124]},"maxrss_kib":{"n":9,"median":55768,"mean":55721.333333333336,"min":55508,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":87.17797887081348,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":274397,"mean":274397,"min":274397,"max":274397,"p95":274397.0,"q25":274397.0,"q75":274397.0,"sd":0.0,"median_ci95":[274397.0,274397.0]},"tx_bytes":{"n":9,"median":211,"mean":211,"min":211,"max":211,"p95":211.0,"q25":211.0,"q75":211.0,"sd":0.0,"median_ci95":[211.0,211.0]},"first_fetch_ms":{"n":9,"median":1.803741000003356,"mean":1.8195282221616556,"min":1.5534140002273489,"max":2.210197999374941,"p95":2.187935599431512,"q25":1.6171140005099005,"q75":1.9357419996595127,"sd":0.23976003711427132,"median_ci95":[1.6028820000428823,2.1545419995163684]},"first_fetch_rx_bytes":{"n":9,"median":274287,"mean":273852.77777777775,"min":270379,"max":274287,"p95":274287.0,"q25":274287.0,"q75":274287.0,"sd":1302.6666666666667,"median_ci95":[274287.0,274287.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":7.936201999655168,"mean":7.947347222195983,"min":6.5842720005093724,"max":9.676280999883602,"p95":9.31997940006113,"q25":7.666652999432699,"q75":8.206066999264294,"sd":0.9348917279008544,"median_ci95":[6.812020000324992,8.78552700032742]},"client_cpu_ms":{"n":9,"median":3.005886999999985,"mean":2.988616666666666,"min":2.8282740000000195,"max":3.1129209999999907,"p95":3.102255799999998,"q25":2.927898999999984,"q75":3.085463999999982,"sd":0.09885076977190994,"median_ci95":[2.8939799999999902,3.0862580000000084]},"maxrss_kib":{"n":9,"median":55768,"mean":55730.22222222222,"min":55508,"max":55768,"p95":55768.0,"q25":55768.0,"q75":55768.0,"sd":87.43251365736,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":641,"mean":641,"min":641,"max":641,"p95":641.0,"q25":641.0,"q75":641.0,"sd":0.0,"median_ci95":[641.0,641.0]},"tx_bytes":{"n":9,"median":214,"mean":214,"min":214,"max":214,"p95":214.0,"q25":214.0,"q75":214.0,"sd":0.0,"median_ci95":[214.0,214.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"postgresql","one_way_delay_ms":0.0,"metrics":{"wall_ms":{"n":9,"median":96.77414799989492,"mean":96.56737122208546,"min":79.82055499996932,"max":108.88791500019579,"p95":106.27162180007872,"q25":95.03981399939221,"q75":101.67090699997061,"sd":8.41399320593186,"median_ci95":[89.00804199947743,102.34718199990311]},"client_cpu_ms":{"n":9,"median":3.098693000000041,"mean":3.05711655555556,"min":2.1713890000000236,"max":3.6677599999999924,"p95":3.595310000000002,"q25":2.856757999999987,"q75":3.3611439999999826,"sd":0.45806152043614523,"median_ci95":[2.653763000000003,3.4866350000000157]},"maxrss_kib":{"n":9,"median":55768,"mean":55721.333333333336,"min":55508,"max":55768,"p95":55768.0,"q25":55688.0,"q75":55768.0,"sd":87.17797887081348,"median_ci95":[55688.0,55768.0]},"rx_bytes":{"n":9,"median":5320,"mean":5320,"min":5320,"max":5320,"p95":5320.0,"q25":5320.0,"q75":5320.0,"sd":0.0,"median_ci95":[5320.0,5320.0]},"tx_bytes":{"n":9,"median":9180,"mean":9180,"min":9180,"max":9180,"p95":9180.0,"q25":9180.0,"q75":9180.0,"sd":0.0,"median_ci95":[9180.0,9180.0]}}},{"suite":"network","scenario":"metadata_one_query_per_table","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":924.814306999906,"mean":924.6041305555586,"min":909.6802189997106,"max":947.7633870001227,"p95":940.9843394003474,"q25":920.3269919999002,"q75":926.223168999968,"sd":10.912176227486292,"median_ci95":[913.1202600001416,930.8157680006843]},"client_cpu_ms":{"n":9,"median":2.168422000000003,"mean":2.300808,"min":1.7298370000000118,"max":3.166514000000009,"p95":3.005332000000005,"q25":2.0690200000000045,"q75":2.6706109999999894,"sd":0.4743799068025532,"median_ci95":[1.8005269999999962,2.763558999999999]},"maxrss_kib":{"n":9,"median":55420,"mean":53632,"min":38908,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":5522.328856560428,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":4820,"mean":4820,"min":4820,"max":4820,"p95":4820.0,"q25":4820.0,"q75":4820.0,"sd":0.0,"median_ci95":[4820.0,4820.0]},"tx_bytes":{"n":9,"median":15120,"mean":15120,"min":15120,"max":15120,"p95":15120.0,"q25":15120.0,"q75":15120.0,"sd":0.0,"median_ci95":[15120.0,15120.0]}}},{"suite":"network","scenario":"buffered_cap_1000","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":110.61880799934443,"mean":111.86008677749568,"min":108.33483900023566,"max":126.24205599968263,"p95":120.15432239968504,"q25":110.11148499983392,"q75":110.71399599950382,"sd":5.471527637613783,"median_ci95":[108.74093599977641,111.02272199968866]},"client_cpu_ms":{"n":9,"median":10.918733999999986,"mean":10.71280144444444,"min":9.095862000000011,"max":11.724404000000007,"p95":11.678979599999996,"q25":9.876417999999997,"q75":11.311093999999994,"sd":0.9081019920975394,"median_ci95":[9.852442999999989,11.610842999999981]},"maxrss_kib":{"n":9,"median":55436,"mean":55477.77777777778,"min":55292,"max":55592,"p95":55592.0,"q25":55420.0,"q75":55592.0,"sd":116.22583380834247,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":13788972,"mean":13788972,"min":13788972,"max":13788972,"p95":13788972.0,"q25":13788972.0,"q75":13788972.0,"sd":0.0,"median_ci95":[13788972.0,13788972.0]},"tx_bytes":{"n":9,"median":40,"mean":40,"min":40,"max":40,"p95":40.0,"q25":40.0,"q75":40.0,"sd":0.0,"median_ci95":[40.0,40.0]}}},{"suite":"network","scenario":"metadata_batch","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":51.55905600076949,"mean":52.523280777576375,"min":47.24562799947307,"max":56.56019599973661,"p95":56.38840119991073,"q25":50.86416699941765,"q75":55.63110599996435,"sd":3.0766186482013564,"median_ci95":[50.81383599917899,56.13070900017192]},"client_cpu_ms":{"n":9,"median":0.17504800000001097,"mean":0.1784066666666584,"min":0.12826099999996288,"max":0.21386700000000647,"p95":0.2105822000000035,"q25":0.15762599999999405,"q75":0.1999719999999927,"sd":0.028242954563933474,"median_ci95":[0.15680000000001248,0.20565499999999903]},"maxrss_kib":{"n":9,"median":55436,"mean":55454.22222222222,"min":55292,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":112.5719522991604,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":3720,"mean":3720,"min":3720,"max":3720,"p95":3720.0,"q25":3720.0,"q75":3720.0,"sd":0.0,"median_ci95":[3720.0,3720.0]},"tx_bytes":{"n":9,"median":755,"mean":755,"min":755,"max":755,"p95":755.0,"q25":755.0,"q75":755.0,"sd":0.0,"median_ci95":[755.0,755.0]}}},{"suite":"network","scenario":"reuse_query","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":41.04356399966491,"mean":41.06740366660233,"min":40.865519999897515,"max":41.467190000730625,"p95":41.34138760036876,"q25":40.96977900007914,"q75":41.094191999945906,"sd":0.17255636619999415,"median_ci95":[40.95028999927308,41.15268399982597]},"client_cpu_ms":{"n":9,"median":0.14770599999999745,"mean":0.1542963333333252,"min":0.09807700000000197,"max":0.28792499999999444,"p95":0.23739579999998978,"q25":0.13653399999999372,"q75":0.14888400000001578,"sd":0.053394394059677525,"median_ci95":[0.12223099999997267,0.16160199999998293]},"maxrss_kib":{"n":9,"median":55436,"mean":55471.555555555555,"min":55292,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":121.10234422907666,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":66,"mean":66,"min":66,"max":66,"p95":66.0,"q25":66.0,"q75":66.0,"sd":0.0,"median_ci95":[66.0,66.0]},"tx_bytes":{"n":9,"median":14,"mean":14,"min":14,"max":14,"p95":14.0,"q25":14.0,"q75":14.0,"sd":0.0,"median_ci95":[14.0,14.0]}}},{"suite":"network","scenario":"server_limit_1001","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":42.339044000073045,"mean":42.34651000014209,"min":41.749245000573865,"max":43.34550499970646,"p95":43.05717740007822,"q25":42.1992429992315,"q75":42.36755700003414,"sd":0.4634366162412085,"median_ci95":[41.83474900037254,42.62468600063585]},"client_cpu_ms":{"n":9,"median":0.7150510000000221,"mean":0.7068777777777766,"min":0.5330800000000191,"max":0.8829000000000059,"p95":0.8530595999999974,"q25":0.6446569999999929,"q75":0.7443619999999984,"sd":0.10831299919074248,"median_ci95":[0.5810109999999924,0.8082989999999846]},"maxrss_kib":{"n":9,"median":55436,"mean":55454.22222222222,"min":55292,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":112.5719522991604,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":274245,"mean":274245,"min":274245,"max":274245,"p95":274245.0,"q25":274245.0,"q75":274245.0,"sd":0.0,"median_ci95":[274245.0,274245.0]},"tx_bytes":{"n":9,"median":51,"mean":51,"min":51,"max":51,"p95":51.0,"q25":51.0,"q75":51.0,"sd":0.0,"median_ci95":[51.0,51.0]}}},{"suite":"network","scenario":"stream_fetch_cleanup","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":248.7985480001953,"mean":248.61569455586303,"min":247.03730400051427,"max":249.90206900019984,"p95":249.8067930004254,"q25":247.9879520005852,"q75":249.23554599990894,"sd":0.9745014731627073,"median_ci95":[247.41555200034782,249.6638790007637]},"client_cpu_ms":{"n":9,"median":0.910661000000007,"mean":0.9148736666666752,"min":0.6503710000000384,"max":1.203937000000002,"p95":1.154468200000011,"q25":0.8000550000000217,"q75":1.025098000000002,"sd":0.18019505764101493,"median_ci95":[0.6918569999999902,1.0802650000000247]},"maxrss_kib":{"n":9,"median":55420,"mean":55452.444444444445,"min":55292,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":113.02113863246015,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":274397,"mean":274397,"min":274397,"max":274397,"p95":274397.0,"q25":274397.0,"q75":274397.0,"sd":0.0,"median_ci95":[274397.0,274397.0]},"tx_bytes":{"n":9,"median":211,"mean":211,"min":211,"max":211,"p95":211.0,"q25":211.0,"q75":211.0,"sd":0.0,"median_ci95":[211.0,211.0]},"first_fetch_ms":{"n":9,"median":125.26264500047546,"mean":124.89981244440666,"min":123.70547499995155,"max":125.98585500018089,"p95":125.86686059985368,"q25":124.05221099925257,"q75":125.65846699999383,"sd":0.8521808965337762,"median_ci95":[123.97227000019484,125.68836899936286]},"first_fetch_rx_bytes":{"n":9,"median":274287,"mean":274287,"min":274287,"max":274287,"p95":274287.0,"q25":274287.0,"q75":274287.0,"sd":0.0,"median_ci95":[274287.0,274287.0]}}},{"suite":"network","scenario":"connect_query_close","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":170.0598560000799,"mean":170.6647402223906,"min":167.3877339999308,"max":173.61668400008057,"p95":173.61177440034226,"q25":169.4722170004752,"q75":172.725944999911,"sd":2.2140047864869956,"median_ci95":[168.56518300028256,173.6044100007348]},"client_cpu_ms":{"n":9,"median":2.6772979999999946,"mean":2.9233390000000004,"min":2.4767890000000072,"max":3.8562489999999783,"p95":3.63030299999999,"q25":2.6268190000000025,"q75":3.089921999999967,"sd":0.4442654005543787,"median_ci95":[2.580380000000021,3.2913840000000083]},"maxrss_kib":{"n":9,"median":55420,"mean":55476,"min":55292,"max":55592,"p95":55592.0,"q25":55420.0,"q75":55592.0,"sd":117.06408501329517,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":641,"mean":641,"min":641,"max":641,"p95":641.0,"q25":641.0,"q75":641.0,"sd":0.0,"median_ci95":[641.0,641.0]},"tx_bytes":{"n":9,"median":214,"mean":214,"min":214,"max":214,"p95":214.0,"q25":214.0,"q75":214.0,"sd":0.0,"median_ci95":[214.0,214.0]}}},{"suite":"network","scenario":"metadata_per_table","variant":"baseline","provider":"postgresql","one_way_delay_ms":20.0,"metrics":{"wall_ms":{"n":9,"median":1724.68700599984,"mean":1724.366714777716,"min":1713.4796279997317,"max":1733.1424690000858,"p95":1732.1300301999145,"q25":1723.191338000106,"q75":1729.375734000314,"sd":6.577417468158168,"median_ci95":[1715.2405819997512,1730.6113719996574]},"client_cpu_ms":{"n":9,"median":4.753112000000003,"mean":4.962379666666669,"min":3.8322009999999795,"max":7.119908000000008,"p95":6.422070800000006,"q25":4.509089000000022,"q75":5.166039000000011,"sd":0.9276906611834635,"median_ci95":[4.315757999999975,5.375315000000006]},"maxrss_kib":{"n":9,"median":55420,"mean":55452.444444444445,"min":55292,"max":55592,"p95":55592.0,"q25":55364.0,"q75":55592.0,"sd":113.02113863246015,"median_ci95":[55364.0,55592.0]},"rx_bytes":{"n":9,"median":5320,"mean":5320,"min":5320,"max":5320,"p95":5320.0,"q25":5320.0,"q75":5320.0,"sd":0.0,"median_ci95":[5320.0,5320.0]},"tx_bytes":{"n":9,"median":9180,"mean":9180,"min":9180,"max":9180,"p95":9180.0,"q25":9180.0,"q75":9180.0,"sd":0.0,"median_ci95":[9180.0,9180.0]}}},{"suite":"local","scenario":"reuse_select1","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":0.015390000044135377,"mean":0.024269111135153152,"min":0.005627000064123422,"max":0.11738299963326426,"p95":0.07688259993301469,"q25":0.011993000043730717,"q75":0.016058999790402595,"sd":0.035169781353337884,"median_ci95":[0.00569400071981363,0.0161320003826404]},"parent_cpu_ms":{"n":9,"median":0.015366000000016644,"mean":0.024174333333327254,"min":0.005630000000006463,"max":0.11625100000001165,"p95":0.07621779999997799,"q25":0.012055000000010807,"q75":0.016154999999962172,"sd":0.03478551806787191,"median_ci95":[0.005702000000051832,0.016167999999927574]},"maxrss_kib":{"n":9,"median":87380,"mean":77153.77777777778,"min":30916,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":18920.303180563584,"median_ci95":[64120.0,87380.0]}}},{"suite":"local","scenario":"worker_1000","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":1.7379780001647305,"mean":2.0338136666598277,"min":1.3069770002402947,"max":4.603602000315732,"p95":3.555772000072465,"q25":1.6013399999792455,"q75":1.9739359995583072,"sd":0.991607349098271,"median_ci95":[1.443983000172011,1.9840269997075666]},"parent_cpu_ms":{"n":9,"median":0.24688000000000487,"mean":0.32492211111111013,"min":0.1744550000000178,"max":0.8422110000000094,"p95":0.6602242000000089,"q25":0.22152800000002637,"q75":0.34525399999996154,"sd":0.2069781194422776,"median_ci95":[0.1813059999999922,0.3872440000000088]},"maxrss_kib":{"n":9,"median":87380,"mean":79061.77777777778,"min":30984,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":18273.82840141727,"median_ci95":[81224.0,87380.0]},"worker_reported_ms":{"n":9,"median":0.9986659997593961,"mean":1.0205901109859243,"min":0.7454419992427574,"max":1.545631999761099,"p95":1.3865979995898667,"q25":0.8636960001240368,"q75":1.081826000699948,"sd":0.2346885810150055,"median_ci95":[0.8358880004379898,1.148046999333019]}}},{"suite":"local","scenario":"worker_cold_select1","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":85.8019739998781,"mean":88.26451477772126,"min":78.90235299964843,"max":99.51451500000985,"p95":99.23289620001015,"q25":80.34406200022204,"q75":94.90123700015829,"sd":8.356111088122297,"median_ci95":[80.21040099993115,98.81046800001059]},"parent_cpu_ms":{"n":9,"median":0.5243129999999985,"mean":0.5328998888888887,"min":0.4516560000000225,"max":0.6729540000000034,"p95":0.6493855999999854,"q25":0.46594100000002525,"q75":0.5939360000000171,"sd":0.07783409015727191,"median_ci95":[0.46135299999994217,0.6140329999999583]},"maxrss_kib":{"n":9,"median":87380,"mean":77161.33333333333,"min":30984,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":18899.532904280994,"median_ci95":[64120.0,87380.0]},"worker_reported_ms":{"n":9,"median":0.9186429997498635,"mean":0.9018312223108498,"min":0.5140650000612368,"max":1.1188530006620567,"p95":1.118832600695896,"q25":0.8782800005064928,"q75":1.068761999704293,"sd":0.21846461377267123,"median_ci95":[0.5912480000915821,1.1188020007466548]}}},{"suite":"local","scenario":"worker_warm_select1","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":0.8609019996583811,"mean":0.8155911111518637,"min":0.5080290002297261,"max":1.009356999929878,"p95":1.006788199811126,"q25":0.7796280006004963,"q75":0.9184079999613459,"sd":0.17628721990515564,"median_ci95":[0.5625730000247131,1.0029349996329984]},"parent_cpu_ms":{"n":9,"median":0.09775400000000545,"mean":0.11284522222222858,"min":0.06183900000000797,"max":0.18493199999999876,"p95":0.1727747999999807,"q25":0.093600000000027,"q75":0.13330700000002693,"sd":0.0389935888248811,"median_ci95":[0.07712900000000911,0.15453899999995357]},"maxrss_kib":{"n":9,"median":87380,"mean":77161.33333333333,"min":30984,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":18899.532904280994,"median_ci95":[64120.0,87380.0]},"worker_reported_ms":{"n":9,"median":0.37966099989716895,"mean":0.34975688878249556,"min":0.2501859999028966,"max":0.4148859998167609,"p95":0.40943000003608176,"q25":0.27823100026580505,"q75":0.3973579996454646,"sd":0.06373335468721172,"median_ci95":[0.2727329992922023,0.4012460003650631]}}},{"suite":"local","scenario":"worker_50000","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":77.04907200059097,"mean":75.87507444451249,"min":64.69862700032536,"max":89.66985999995813,"p95":86.37981720003154,"q25":72.11233399993944,"q75":80.74950500031264,"sd":7.845171989106148,"median_ci95":[66.0911289996875,81.44475300014165]},"parent_cpu_ms":{"n":9,"median":17.559871000000005,"mean":18.270421555555547,"min":13.601480999999971,"max":29.14602899999999,"p95":25.378930599999986,"q25":15.937818999999909,"q75":19.445599000000037,"sd":4.52697878784177,"median_ci95":[15.065364999999996,19.728282999999987]},"maxrss_kib":{"n":9,"median":87380,"mean":83427.55555555556,"min":64120,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":7715.43840476857,"median_ci95":[81224.0,87380.0]},"worker_reported_ms":{"n":9,"median":44.957313999475446,"mean":45.15227566662361,"min":37.98599199944874,"max":52.07955400055653,"p95":51.977568000256724,"q25":44.52168599982542,"q75":46.59528900083387,"sd":4.88430206389723,"median_ci95":[38.495777000207454,51.82458899980702]}}},{"suite":"local","scenario":"direct_50000","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":34.600408999722276,"mean":36.829176444371114,"min":31.151027999840153,"max":46.743302999857406,"p95":46.118438999656064,"q25":33.21744999993825,"q75":38.87716000008368,"sd":5.650625058073685,"median_ci95":[32.38738900017779,45.18114299935405]},"parent_cpu_ms":{"n":9,"median":34.461256999999996,"mean":36.58950744444446,"min":30.976936000000066,"max":46.29398600000001,"p95":45.68288440000001,"q25":33.05880800000002,"q75":38.72942700000004,"sd":5.546022606040115,"median_ci95":[32.19492000000002,44.76623200000002]},"maxrss_kib":{"n":9,"median":87380,"mean":80843.11111111111,"min":64120,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":9831.515809431987,"median_ci95":[64120.0,87380.0]}}},{"suite":"local","scenario":"direct_1000","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":0.436196999544336,"mean":0.44245777775763095,"min":0.29335799990803935,"max":0.5899509997107089,"p95":0.5476977996295318,"q25":0.41885600057867123,"q75":0.4719910002677352,"sd":0.07749547238952574,"median_ci95":[0.41828499979601474,0.4843179995077662]},"parent_cpu_ms":{"n":9,"median":0.43631900000001833,"mean":0.44061344444443207,"min":0.2905029999999975,"max":0.5819080000000199,"p95":0.5429491999999758,"q25":0.419130999999906,"q75":0.46527200000001656,"sd":0.07599935037076522,"median_ci95":[0.4183509999999835,0.48451099999990976]},"maxrss_kib":{"n":9,"median":87380,"mean":80843.11111111111,"min":64120,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":9831.515809431987,"median_ci95":[64120.0,87380.0]}}},{"suite":"local","scenario":"cancellable_select1","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":0.24957699952210533,"mean":0.6118104442470617,"min":0.09061699984158622,"max":3.802344999712659,"p95":2.4264838000817677,"q25":0.1399689999743714,"q75":0.29022199942119187,"sd":1.1995788184125433,"median_ci95":[0.1335949991698726,0.36269200063543394]},"parent_cpu_ms":{"n":9,"median":0.24784499999996878,"mean":0.6057402222222095,"min":0.09078899999998002,"max":3.766864000000009,"p95":2.4054207999999955,"q25":0.1400810000000141,"q75":0.2804610000000096,"sd":1.1884976538134029,"median_ci95":[0.13371200000000805,0.3632559999999785]},"maxrss_kib":{"n":9,"median":87380,"mean":80843.11111111111,"min":64120,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":9831.515809431987,"median_ci95":[64120.0,87380.0]}}},{"suite":"local","scenario":"connect_select1_close","variant":"baseline","provider":"sqlite","metrics":{"wall_ms":{"n":9,"median":0.219238999306981,"mean":0.2242945555634732,"min":0.12737700035359012,"max":0.27699500060407445,"p95":0.27180180040886626,"q25":0.21188099981372943,"q75":0.25363799977640156,"sd":0.04423412736438973,"median_ci95":[0.202917000024172,0.26401200011605397]},"parent_cpu_ms":{"n":9,"median":0.21949899999995637,"mean":0.22224599999999076,"min":0.12754300000000773,"max":0.2775410000000478,"p95":0.27229260000000144,"q25":0.21194599999999064,"q75":0.23870100000000782,"sd":0.04305295624867108,"median_ci95":[0.20313999999999055,0.26441999999993193]},"maxrss_kib":{"n":9,"median":87380,"mean":80843.11111111111,"min":64120,"max":87380,"p95":87380.0,"q25":81224.0,"q75":87380.0,"sd":9831.515809431987,"median_ci95":[64120.0,87380.0]}}},{"suite":"local","scenario":"reuse_select1","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":0.4015280001112842,"mean":0.40242688889217487,"min":0.0984759999482776,"max":0.6390030002876301,"p95":0.6367258001773735,"q25":0.34199499987153104,"q75":0.5080109995105886,"sd":0.17820815552682007,"median_ci95":[0.21221399947535247,0.5080109995105886]},"parent_cpu_ms":{"n":9,"median":0.40221899999992594,"mean":0.39911444444442856,"min":0.09866299999994332,"max":0.6273649999999353,"p95":0.6238249999999557,"q25":0.3414539999999633,"q75":0.5087300000000683,"sd":0.17384605360643424,"median_ci95":[0.2125659999999696,0.5087300000000683]},"maxrss_kib":{"n":9,"median":175152,"mean":165509.33333333334,"min":117560,"max":178648,"p95":178648.0,"q25":169384.0,"q75":178648.0,"sd":22252.880802269174,"median_ci95":[137744.0,178648.0]}}},{"suite":"local","scenario":"worker_1000","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":17.156384000372782,"mean":18.253808666486293,"min":16.79330699971615,"max":22.33785499993246,"p95":22.173576199929812,"q25":16.90204900023673,"q75":17.877351999231905,"sd":2.226130387031889,"median_ci95":[16.810946999612497,21.92715799992584]},"parent_cpu_ms":{"n":9,"median":0.2941439999999407,"mean":0.313824333333342,"min":0.21355500000008742,"max":0.4782340000000218,"p95":0.47089600000003173,"q25":0.2550919999999568,"q75":0.33084999999999365,"sd":0.09588421970663978,"median_ci95":[0.22290499999999547,0.4598890000000466]},"maxrss_kib":{"n":9,"median":175152,"mean":169665.77777777778,"min":117560,"max":178648,"p95":178648.0,"q25":175152.0,"q75":178648.0,"sd":19774.063326601452,"median_ci95":[169384.0,178648.0]},"worker_reported_ms":{"n":9,"median":16.195750000406406,"mean":17.22338866663146,"min":15.865794000092137,"max":21.012672999859205,"p95":20.865290200163145,"q25":15.941480999572377,"q75":16.94996500009438,"sd":2.0709071356008706,"median_ci95":[15.935767999508244,20.644216000619053]}}},{"suite":"local","scenario":"worker_cold_select1","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":138.7631319994398,"mean":136.03261811102936,"min":122.3151730000609,"max":146.3739330001772,"p95":146.26644660002057,"q25":127.55371100047341,"q75":144.91497600010916,"sd":9.106510644258599,"median_ci95":[127.38297499981854,146.10521699978563]},"parent_cpu_ms":{"n":9,"median":0.5321169999999986,"mean":0.8181877777778062,"min":0.4680479999999987,"max":3.032715999999991,"p95":2.0790684000000272,"q25":0.48902800000005797,"q75":0.6122180000001087,"sd":0.8326315532091156,"median_ci95":[0.4873579999999933,0.648597000000084]},"maxrss_kib":{"n":9,"median":175152,"mean":166720.88888888888,"min":117560,"max":178648,"p95":178648.0,"q25":169384.0,"q75":178648.0,"sd":20801.759711887626,"median_ci95":[148648.0,178648.0]},"worker_reported_ms":{"n":9,"median":44.06197899970721,"mean":41.50990522207899,"min":33.88215099948866,"max":46.639056999993045,"p95":46.220280999841634,"q25":35.994027000015194,"q75":44.59120199953759,"sd":5.103407045119001,"median_ci95":[34.62893199957762,45.59211699961452]}}},{"suite":"local","scenario":"worker_warm_select1","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":6.828518000475015,"mean":7.869559777645918,"min":6.143343999610806,"max":10.830386999259645,"p95":10.734988999502093,"q25":6.49102999977913,"q75":9.94414499928098,"sd":1.9779867748254782,"median_ci95":[6.24333999985538,10.591891999865766]},"parent_cpu_ms":{"n":9,"median":0.1415040000000145,"mean":0.1570976666666674,"min":0.10451899999996961,"max":0.33169200000005006,"p95":0.2613464000000398,"q25":0.13017000000004053,"q75":0.14557199999998272,"sd":0.06700040276933192,"median_ci95":[0.1295580000000296,0.1558280000000245]},"maxrss_kib":{"n":9,"median":178648,"mean":166538.66666666666,"min":117560,"max":178648,"p95":178648.0,"q25":175152.0,"q75":178648.0,"sd":22664.954798101848,"median_ci95":[137744.0,178648.0]},"worker_reported_ms":{"n":9,"median":6.389281999872765,"mean":7.378554777763687,"min":5.691239000043424,"max":10.269454999615846,"p95":10.175832999630074,"q25":5.98082099986641,"q75":9.371295000164537,"sd":1.9273494446734105,"median_ci95":[5.78342800054088,10.035399999651418]}}},{"suite":"local","scenario":"worker_50000","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":61.909980000564246,"mean":60.62711144447045,"min":52.26694300017698,"max":76.27004299956752,"p95":72.24360059972241,"q25":54.66175099991233,"q75":62.589231999481854,"sd":7.592029898453997,"median_ci95":[53.65009300021484,66.20393699995475]},"parent_cpu_ms":{"n":9,"median":13.215835000000009,"mean":13.686163444444436,"min":11.136310000000037,"max":19.27533499999989,"p95":17.678856199999956,"q25":12.652969999999986,"q75":13.91663700000012,"sd":2.4286066657713294,"median_ci95":[11.547785999999949,15.284138000000059]},"maxrss_kib":{"n":9,"median":178648,"mean":171348,"min":129204,"max":178648,"p95":178648.0,"q25":175152.0,"q75":178648.0,"sd":16106.53929309459,"median_ci95":[169384.0,178648.0]},"worker_reported_ms":{"n":9,"median":34.703547000390245,"mean":36.47726566669007,"min":29.593719000331475,"max":44.90095199980715,"p95":43.23462119973556,"q25":32.48516999974527,"q75":40.2264730000752,"sd":5.1274901560579265,"median_ci95":[32.48516999974527,40.73512499962817]}}},{"suite":"local","scenario":"direct_50000","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":18.288378999386623,"mean":18.72733722221811,"min":16.62825499988685,"max":22.600101000534778,"p95":21.927496200260066,"q25":17.41763300015009,"q75":18.92857999973785,"sd":1.935343652426707,"median_ci95":[16.827972000101,20.918588999847998]},"parent_cpu_ms":{"n":9,"median":18.06435799999995,"mean":18.35914433333331,"min":16.44511900000001,"max":22.331077000000032,"p95":21.25317579999999,"q25":17.231575999999915,"q75":18.58263900000001,"sd":1.7871815928377424,"median_ci95":[16.677128999999958,19.636323999999927]},"maxrss_kib":{"n":9,"median":175152,"mean":169917.33333333334,"min":137744,"max":178648,"p95":178648.0,"q25":175152.0,"q75":178648.0,"sd":14843.989760168928,"median_ci95":[151464.0,178648.0]}}},{"suite":"local","scenario":"direct_1000","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":4.163431000051787,"mean":4.230973333202807,"min":3.459214000031352,"max":5.748894999669574,"p95":5.283685399808746,"q25":3.95878899962554,"q75":4.31653599935089,"sd":0.6708988627605726,"median_ci95":[3.5427919992798707,4.585871000017505]},"parent_cpu_ms":{"n":9,"median":4.097930999999999,"mean":4.186341444444433,"min":3.4467579999999387,"max":5.72922000000009,"p95":5.244743600000046,"q25":3.8947950000000064,"q75":4.291790999999989,"sd":0.6709230659526738,"median_ci95":[3.5277899999999196,4.518028999999979]},"maxrss_kib":{"n":9,"median":178648,"mean":168140.44444444444,"min":137744,"max":178648,"p95":178648.0,"q25":169384.0,"q75":178648.0,"sd":17502.284244571558,"median_ci95":[137744.0,178648.0]}}},{"suite":"local","scenario":"cancellable_select1","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":0.496374999784166,"mean":0.4527906668146089,"min":0.2050399998552166,"max":0.6470560001616832,"p95":0.6235700002434896,"q25":0.30548600079782773,"q75":0.5675410002368153,"sd":0.16416146231431278,"median_ci95":[0.22963199990044814,0.5883410003661993]},"parent_cpu_ms":{"n":9,"median":0.4982219999999371,"mean":0.44805699999999554,"min":0.20550299999988475,"max":0.6123829999999941,"p95":0.6030986000000738,"q25":0.3021990000000585,"q75":0.5682229999999233,"sd":0.15926630611418688,"median_ci95":[0.23017899999999702,0.5891720000001932]},"maxrss_kib":{"n":9,"median":178648,"mean":169352,"min":137744,"max":178648,"p95":178648.0,"q25":169384.0,"q75":178648.0,"sd":15384.409250926732,"median_ci95":[148648.0,178648.0]}}},{"suite":"local","scenario":"connect_select1_close","variant":"baseline","provider":"duckdb","metrics":{"wall_ms":{"n":9,"median":0.5622839998977724,"mean":0.4996490002263777,"min":0.24633300017740112,"max":0.7551600001534098,"p95":0.6956476003324497,"q25":0.3860569995595142,"q75":0.5925350005782093,"sd":0.16518420882804377,"median_ci95":[0.28209300035086926,0.6063790006010095]},"parent_cpu_ms":{"n":9,"median":0.558674999999953,"mean":0.49418099999998244,"min":0.2400189999999247,"max":0.7569199999999388,"p95":0.6945351999999794,"q25":0.3871550000000834,"q75":0.5683419999999995,"sd":0.1649755716629023,"median_ci95":[0.27670699999993165,0.6009580000000403]},"maxrss_kib":{"n":9,"median":178648,"mean":169992.88888888888,"min":137744,"max":178648,"p95":178648.0,"q25":175152.0,"q75":178648.0,"sd":15505.574452793135,"median_ci95":[148648.0,178648.0]}}},{"suite":"ipc","scenario":"pickle_roundtrip","variant":"baseline","provider":"ipc","pattern":"repeated","metrics":{"wall_ms":{"n":9,"median":25.813416999881156,"mean":25.737285555502847,"min":23.743151999951806,"max":27.764524000303936,"p95":27.411922800092725,"q25":25.08086000034382,"q75":26.483753999855253,"sd":1.2044088128920065,"median_ci95":[24.72432000013214,26.88302099977591]},"parent_cpu_ms":{"n":9,"median":25.423479000000082,"mean":25.523660111111116,"min":23.603869,"max":27.371038999999932,"p95":27.073647799999947,"q25":24.92376399999996,"q75":26.34104700000006,"sd":1.1392040471602578,"median_ci95":[24.587131000000095,26.627560999999965]},"maxrss_kib":{"n":9,"median":366932,"mean":354193.77777777775,"min":223780,"max":424284,"p95":424284.0,"q25":309572.0,"q75":424284.0,"sd":71792.03170578503,"median_ci95":[280880.0,424284.0]},"bytes":{"n":9,"median":13351685,"mean":13351685,"min":13351685,"max":13351685,"p95":13351685.0,"q25":13351685.0,"q75":13351685.0,"sd":0.0,"median_ci95":[13351685.0,13351685.0]}}},{"suite":"ipc","scenario":"arrow_none_roundtrip","variant":"baseline","provider":"ipc","pattern":"repeated","metrics":{"wall_ms":{"n":9,"median":2.168046999940998,"mean":2.874249777859303,"min":2.068242999484937,"max":8.639962000415835,"p95":6.103220400291319,"q25":2.0912200006932835,"q75":2.232355999694846,"sd":2.163551594130332,"median_ci95":[2.0832290001635556,2.2981080001045484]},"parent_cpu_ms":{"n":9,"median":2.156578000000131,"mean":2.353324777777758,"min":2.0594210000000057,"max":4.035750999999976,"p95":3.336030599999961,"q25":2.081063999999966,"q75":2.220638999999913,"sd":0.6354578668487333,"median_ci95":[2.076975999999897,2.28644999999994]},"maxrss_kib":{"n":9,"median":366932,"mean":354193.77777777775,"min":223780,"max":424284,"p95":424284.0,"q25":309572.0,"q75":424284.0,"sd":71792.03170578503,"median_ci95":[280880.0,424284.0]},"bytes":{"n":9,"median":13400400,"mean":13400400,"min":13400400,"max":13400400,"p95":13400400.0,"q25":13400400.0,"q75":13400400.0,"sd":0.0,"median_ci95":[13400400.0,13400400.0]}}},{"suite":"ipc","scenario":"arrow_lz4_roundtrip","variant":"baseline","provider":"ipc","pattern":"repeated","metrics":{"wall_ms":{"n":9,"median":5.098478000036266,"mean":5.659393222130246,"min":3.7933049998173374,"max":12.028543999804242,"p95":9.387840799718104,"q25":4.918909000480198,"q75":5.264686000373331,"sd":2.4508012980454965,"median_ci95":[4.121107999708329,5.426785999588901]},"parent_cpu_ms":{"n":9,"median":5.10673099999992,"mean":5.035187888888941,"min":3.7058030000001185,"max":6.641166000000087,"p95":6.149042000000016,"q25":4.922318000000203,"q75":5.220658000000045,"sd":0.8256947173394732,"median_ci95":[4.0919640000001145,5.410855999999908]},"maxrss_kib":{"n":9,"median":366932,"mean":354193.77777777775,"min":223780,"max":424284,"p95":424284.0,"q25":309572.0,"q75":424284.0,"sd":71792.03170578503,"median_ci95":[280880.0,424284.0]},"bytes":{"n":9,"median":453408,"mean":453408,"min":453408,"max":453408,"p95":453408.0,"q25":453408.0,"q75":453408.0,"sd":0.0,"median_ci95":[453408.0,453408.0]}}},{"suite":"ipc","scenario":"arrow_zstd_roundtrip","variant":"baseline","provider":"ipc","pattern":"repeated","metrics":{"wall_ms":{"n":9,"median":5.450632000247424,"mean":5.513806444671193,"min":4.244884999934584,"max":6.8918540000595385,"p95":6.525352799872053,"q25":5.287870000756811,"q75":5.741744000260951,"sd":0.7050976886507635,"median_ci95":[5.1431810006761225,5.975600999590824]},"parent_cpu_ms":{"n":9,"median":5.412514999999951,"mean":5.482305999999919,"min":4.239684000000077,"max":6.852195999999866,"p95":6.482187599999856,"q25":5.268228999999902,"q75":5.68201299999993,"sd":0.692821231554852,"median_ci95":[5.1345189999998375,5.92717499999984]},"maxrss_kib":{"n":9,"median":366932,"mean":355385.3333333333,"min":234504,"max":424284,"p95":424284.0,"q25":309572.0,"q75":424284.0,"sd":69406.30173118289,"median_ci95":[280880.0,424284.0]},"bytes":{"n":9,"median":174280,"mean":174280,"min":174280,"max":174280,"p95":174280.0,"q25":174280.0,"q75":174280.0,"sd":0.0,"median_ci95":[174280.0,174280.0]}}},{"suite":"ipc","scenario":"arrow_python_roundtrip","variant":"baseline","provider":"ipc","pattern":"repeated","metrics":{"wall_ms":{"n":9,"median":44.22667999915575,"mean":44.36835822222444,"min":42.799052000191296,"max":46.25519599994732,"p95":46.112191599786456,"q25":43.17945800084999,"q75":45.38827000033052,"sd":1.2668399335593894,"median_ci95":[43.03285300011339,45.89768499954516]},"parent_cpu_ms":{"n":9,"median":44.01882300000004,"mean":44.123794888888895,"min":42.43760600000002,"max":46.06266000000004,"p95":45.91231080000009,"q25":42.928061000000014,"q75":45.15862699999995,"sd":1.3047094198042488,"median_ci95":[42.80237499999995,45.68678700000017]},"maxrss_kib":{"n":9,"median":395348,"mean":376383.55555555556,"min":280748,"max":424284,"p95":424284.0,"q25":338116.0,"q75":424284.0,"sd":55574.611449633885,"median_ci95":[309440.0,424284.0]},"bytes":{"n":9,"median":13400400,"mean":13400400,"min":13400400,"max":13400400,"p95":13400400.0,"q25":13400400.0,"q75":13400400.0,"sd":0.0,"median_ci95":[13400400.0,13400400.0]}}},{"suite":"ipc","scenario":"pickle_roundtrip","variant":"baseline","provider":"ipc","pattern":"varied","metrics":{"wall_ms":{"n":9,"median":24.074690999441373,"mean":24.0879412222057,"min":19.346185000358673,"max":26.275406000422663,"p95":26.034286400317797,"q25":23.960396999427758,"q75":25.17523499955132,"sd":1.99258842444546,"median_ci95":[23.50105599998642,25.672607000160497]},"parent_cpu_ms":{"n":9,"median":23.967680999999796,"mean":23.891852888888906,"min":19.22462600000019,"max":26.173432,"p95":25.836577600000023,"q25":23.811950000000248,"q75":25.03595500000033,"sd":1.968637337041029,"median_ci95":[23.22892199999993,25.33129600000006]},"maxrss_kib":{"n":9,"median":528092,"mean":492006.6666666667,"min":432868,"max":528092,"p95":528092.0,"q25":438920.0,"q75":528092.0,"sd":44543.489715108764,"median_ci95":[438920.0,528092.0]},"bytes":{"n":9,"median":13351685,"mean":13351685,"min":13351685,"max":13351685,"p95":13351685.0,"q25":13351685.0,"q75":13351685.0,"sd":0.0,"median_ci95":[13351685.0,13351685.0]}}},{"suite":"ipc","scenario":"arrow_none_roundtrip","variant":"baseline","provider":"ipc","pattern":"varied","metrics":{"wall_ms":{"n":9,"median":2.0824969997192966,"mean":2.086340222174638,"min":1.9791069998973398,"max":2.2585449996768148,"p95":2.219670999875234,"q25":1.9884080002157134,"q75":2.1435479993670015,"sd":0.09361197590339326,"median_ci95":[1.986475000194332,2.161360000172863]},"parent_cpu_ms":{"n":9,"median":2.0775730000002213,"mean":2.0702771111111358,"min":1.936034999999947,"max":2.208948000000266,"p95":2.1841568000000144,"q25":1.9828560000001438,"q75":2.1363199999999694,"sd":0.08940546299368367,"median_ci95":[1.9804269999998958,2.1469699999996372]},"maxrss_kib":{"n":9,"median":528092,"mean":492006.6666666667,"min":432868,"max":528092,"p95":528092.0,"q25":438920.0,"q75":528092.0,"sd":44543.489715108764,"median_ci95":[438920.0,528092.0]},"bytes":{"n":9,"median":13400400,"mean":13400400,"min":13400400,"max":13400400,"p95":13400400.0,"q25":13400400.0,"q75":13400400.0,"sd":0.0,"median_ci95":[13400400.0,13400400.0]}}},{"suite":"ipc","scenario":"arrow_lz4_roundtrip","variant":"baseline","provider":"ipc","pattern":"varied","metrics":{"wall_ms":{"n":9,"median":9.161893000054988,"mean":9.390697110979495,"min":8.153918999596499,"max":11.582559999624209,"p95":11.205307199452363,"q25":8.60248099979799,"q75":9.680383000159054,"sd":1.1064233248080755,"median_ci95":[8.506484999998065,10.639427999194595]},"parent_cpu_ms":{"n":9,"median":8.998779000000123,"mean":9.111516333333316,"min":8.12495000000002,"max":10.849032000000092,"p95":10.452864799999917,"q25":8.559085999999994,"q75":9.410063000000246,"sd":0.8408354803182535,"median_ci95":[8.352652999999766,9.858613999999655]},"maxrss_kib":{"n":9,"median":528092,"mean":492006.6666666667,"min":432868,"max":528092,"p95":528092.0,"q25":438920.0,"q75":528092.0,"sd":44543.489715108764,"median_ci95":[438920.0,528092.0]},"bytes":{"n":9,"median":13201448,"mean":13201448,"min":13201448,"max":13201448,"p95":13201448.0,"q25":13201448.0,"q75":13201448.0,"sd":0.0,"median_ci95":[13201448.0,13201448.0]}}},{"suite":"ipc","scenario":"arrow_zstd_roundtrip","variant":"baseline","provider":"ipc","pattern":"varied","metrics":{"wall_ms":{"n":9,"median":17.414979000022868,"mean":17.573985555625566,"min":16.75744600015605,"max":18.518128000323486,"p95":18.49389760009217,"q25":17.033473999617854,"q75":18.274381999617617,"sd":0.6871602760654603,"median_ci95":[16.83620699986932,18.457551999745192]},"parent_cpu_ms":{"n":9,"median":17.250297999999997,"mean":17.35415255555544,"min":16.509817999999843,"max":18.41368199999982,"p95":18.34800879999987,"q25":16.823174999999857,"q75":17.906942999999842,"sd":0.6986122891223541,"median_ci95":[16.57347999999992,18.249498999999947]},"maxrss_kib":{"n":9,"median":528092,"mean":492593.77777777775,"min":438152,"max":528092,"p95":528092.0,"q25":438920.0,"q75":528092.0,"sd":43693.27857284738,"median_ci95":[438920.0,528092.0]},"bytes":{"n":9,"median":6575776,"mean":6575776,"min":6575776,"max":6575776,"p95":6575776.0,"q25":6575776.0,"q75":6575776.0,"sd":0.0,"median_ci95":[6575776.0,6575776.0]}}},{"suite":"ipc","scenario":"arrow_python_roundtrip","variant":"baseline","provider":"ipc","pattern":"varied","metrics":{"wall_ms":{"n":9,"median":40.65136400004121,"mean":42.69296822217762,"min":39.638303000174346,"max":57.34988499989413,"p95":51.33405180004046,"q25":40.340361999369634,"q75":42.073984000126075,"sd":5.570485695492499,"median_ci95":[39.92444899995462,42.31030200025998]},"parent_cpu_ms":{"n":9,"median":40.343377000000125,"mean":42.25100244444447,"min":39.14924400000031,"max":56.94597400000001,"p95":50.99856039999996,"q25":40.14101799999992,"q75":41.33459900000025,"sd":5.579050129047791,"median_ci95":[39.56943699999993,42.07743999999991]},"maxrss_kib":{"n":9,"median":528092,"mean":499240.44444444444,"min":438920,"max":528092,"p95":528092.0,"q25":461832.0,"q75":528092.0,"sd":40355.87325009555,"median_ci95":[438920.0,528092.0]},"bytes":{"n":9,"median":13400400,"mean":13400400,"min":13400400,"max":13400400,"p95":13400400.0,"q25":13400400.0,"q75":13400400.0,"sd":0.0,"median_ci95":[13400400.0,13400400.0]}}}],"comparisons":[{"name":"completion-ui-1000","before":{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"baseline"},"after":{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"candidate"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":98.39056700002402,"after_median":21.78511999954935,"saved":76.60544700047467,"reduction_percent":77.85852784084064,"saved_ci95":[63.58433227476327,85.63261099970987],"reduction_ci95":[65.94062059111265,79.90042371429792]},{"name":"completion-ui-cpu-1000","before":{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"baseline"},"after":{"suite":"completion","scenario":"autocomplete_1000_routines","variant":"candidate"},"metric":"cpu_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":96.66114600000003,"after_median":21.576221000000007,"saved":75.08492500000003,"reduction_percent":77.67849659055356,"saved_ci95":[63.376997525,77.56530299999997],"reduction_ci95":[65.61141667557322,78.55379968286331]},{"name":"completion-ui-5000","before":{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"baseline"},"after":{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"candidate"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1841.234147999785,"after_median":34.62547699928109,"saved":1806.6086710005038,"reduction_percent":98.11944194947198,"saved_ci95":[1764.4720700000107,1860.6691549994139],"reduction_ci95":[96.96465256977935,98.20584297841886]},{"name":"completion-ui-cpu-5000","before":{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"baseline"},"after":{"suite":"completion","scenario":"autocomplete_5000_routines","variant":"candidate"},"metric":"cpu_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1828.097953,"after_median":34.493291000000035,"saved":1793.604662,"reduction_percent":98.11315958516366,"saved_ci95":[1759.1607339999998,1825.4926920000003],"reduction_ci95":[97.08873291430244,98.18422563610534]},{"name":"startup-ready-disabled","before":{"suite":"startup","scenario":"disabled","variant":"baseline"},"after":{"suite":"startup","scenario":"disabled","variant":"candidate"},"metric":"parent_ready_ms","n_before":15,"n_after":15,"paired_bootstrap":true,"before_median":410.6932400000005,"after_median":393.0072849998396,"saved":17.685955000160902,"reduction_percent":4.306366230951569,"saved_ci95":[-0.5204639992371085,31.116342999666813],"reduction_ci95":[-0.12871777116230154,7.36867997128796]},{"name":"startup-cpu-disabled","before":{"suite":"startup","scenario":"disabled","variant":"baseline"},"after":{"suite":"startup","scenario":"disabled","variant":"candidate"},"metric":"process_cpu_ms","n_before":15,"n_after":15,"paired_bootstrap":true,"before_median":541.8,"after_median":454.435,"saved":87.36499999999995,"reduction_percent":16.12495385751199,"saved_ci95":[80.22399999999999,109.71200000000005],"reduction_ci95":[14.856984882854462,19.57433598161606]},{"name":"startup-ready-default","before":{"suite":"startup","scenario":"default","variant":"baseline"},"after":{"suite":"startup","scenario":"default","variant":"candidate"},"metric":"parent_ready_ms","n_before":15,"n_after":15,"paired_bootstrap":true,"before_median":409.01268899960996,"after_median":402.3940360002598,"saved":6.618652999350161,"reduction_percent":1.6182023632417117,"saved_ci95":[-20.0261748253979,18.444225000166625],"reduction_ci95":[-5.138525684808137,4.50498653357163]},{"name":"startup-cpu-default","before":{"suite":"startup","scenario":"default","variant":"baseline"},"after":{"suite":"startup","scenario":"default","variant":"candidate"},"metric":"process_cpu_ms","n_before":15,"n_after":15,"paired_bootstrap":true,"before_median":547.391,"after_median":537.525,"saved":9.865999999999985,"reduction_percent":1.8023679600139546,"saved_ci95":[-22.324999999999932,20.98099999999988],"reduction_ci95":[-4.25567740683229,3.759389065680436]},{"name":"idle-idle_5s","before":{"suite":"idle","scenario":"idle_5s","variant":"baseline"},"after":{"suite":"idle","scenario":"idle_5s","variant":"candidate"},"metric":"cpu_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":21.07285000000003,"after_median":5.9093639999999725,"saved":15.16348600000006,"reduction_percent":71.95745236168833,"saved_ci95":[11.821863000000043,15.78078300000002],"reduction_ci95":[61.4557349048968,73.96027974521976]},{"name":"idle-editor_idle_5s","before":{"suite":"idle","scenario":"editor_idle_5s","variant":"baseline"},"after":{"suite":"idle","scenario":"editor_idle_5s","variant":"candidate"},"metric":"cpu_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":39.87964199999999,"after_median":23.730517000000006,"saved":16.149124999999984,"reduction_percent":40.494658903908885,"saved_ci95":[11.16944899999994,19.688848000000036],"reduction_ci95":[29.184147907993644,47.659916305166384]},{"name":"long-cells-cpu","before":{"suite":"long-cells","scenario":"render_1000_3_long","variant":"baseline"},"after":{"suite":"long-cells","scenario":"render_1000_3_long","variant":"candidate"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":90.61595399999995,"after_median":86.277948,"saved":4.33800599999995,"reduction_percent":4.787243094080268,"saved_ci95":[-14.501749000000004,33.498941999999985],"reduction_ci95":[-20.149989827566632,30.163143821349447]},{"name":"long-cells-wall","before":{"suite":"long-cells","scenario":"render_1000_3_long","variant":"baseline"},"after":{"suite":"long-cells","scenario":"render_1000_3_long","variant":"candidate"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":181.42645599982643,"after_median":189.90923399996973,"saved":-8.482778000143298,"reduction_percent":-4.67560144599386,"saved_ci95":[-23.68023300095956,150.24722299949644],"reduction_ci95":[-14.475360071833741,42.23071658536555]},{"name":"algorithm-5000","before":{"suite":"cpu","scenario":"routine_completion","objects":5000,"variant":"baseline"},"after":{"suite":"cpu","scenario":"routine_completion","objects":5000,"variant":"candidate"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":false,"before_median":2337.474960999316,"after_median":5.62616600018373,"saved":2331.848794999132,"reduction_percent":99.7593058281241,"saved_ci95":[2035.7059809504335,2554.5397419991787],"reduction_ci95":[99.7241125224934,99.7800246184706]},{"name":"render50k-candidate-wall_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"candidate"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":1304.146860000401,"after_median":1262.757667999722,"saved":41.38919200067903,"reduction_percent":3.173660365264868,"saved_ci95":[-443.128782999338,229.4601910007259],"reduction_ci95":[-39.76501993430996,15.377124031636257]},{"name":"render50k-candidate-cpu_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"candidate"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":305.78843899999987,"after_median":311.748229,"saved":-5.959790000000112,"reduction_percent":-1.9489912762856658,"saved_ci95":[-152.34851899999978,76.44390400000026],"reduction_ci95":[-55.97312800811404,20.013482491963984]},{"name":"render50k-candidate-max_loop_delay_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"candidate"},"metric":"max_loop_delay_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":22.145400999870617,"after_median":19.861790000613837,"saved":2.28361099925678,"reduction_percent":10.311897261513222,"saved_ci95":[-13.9558049995685,26.441848000104073],"reduction_ci95":[-67.51689832641976,58.165389027094065]},{"name":"render50k-candidate-terminal_bytes","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"candidate"},"metric":"terminal_bytes","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":146513,"after_median":153827,"saved":-7314,"reduction_percent":-4.992048487164961,"saved_ci95":[-30162.0,2740.0],"reduction_ci95":[-20.978904244886035,1.7500494995752618]},{"name":"render50k-bulk-wall_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"bulk"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":1304.146860000401,"after_median":154.40533400033019,"saved":1149.7415260000707,"reduction_percent":88.16043355728489,"saved_ci95":[948.9134880004713,1365.782646000298],"reduction_ci95":[84.71681395151364,91.52702722075438]},{"name":"render50k-bulk-cpu_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"bulk"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":305.78843899999987,"after_median":140.5030919999999,"saved":165.28534699999997,"reduction_percent":54.05218965783073,"saved_ci95":[123.35287500000015,257.11780000000033],"reduction_ci95":[45.32007470675779,67.31501557890458]},{"name":"render50k-bulk-max_loop_delay_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"bulk"},"metric":"max_loop_delay_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":22.145400999870617,"after_median":94.69983199971466,"saved":-72.55443099984404,"reduction_percent":-327.6275331400318,"saved_ci95":[-81.48361899930023,-42.31888199956302],"reduction_ci95":[-435.3559998430232,-93.09085487090702]},{"name":"render50k-bulk-terminal_bytes","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"bulk"},"metric":"terminal_bytes","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":146513,"after_median":77109,"saved":69404,"reduction_percent":47.370540498112796,"saved_ci95":[66664.0,79458.0],"reduction_ci95":[46.367537715704614,50.75015807928874]},{"name":"render50k-preview-thread-wall_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"preview-thread"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":1304.146860000401,"after_median":228.1109519999518,"saved":1076.0359080004491,"reduction_percent":82.50879874066624,"saved_ci95":[873.124818001088,1317.0007280004938],"reduction_ci95":[77.95057578843335,88.25793901720745]},{"name":"render50k-preview-thread-cpu_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"preview-thread"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":305.78843899999987,"after_median":203.5524470000001,"saved":102.23599199999978,"reduction_percent":33.43357006377858,"saved_ci95":[43.12606800000006,210.17365700000016],"reduction_ci95":[16.175220380841573,55.02475128221516]},{"name":"render50k-preview-thread-max_loop_delay_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"preview-thread"},"metric":"max_loop_delay_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":22.145400999870617,"after_median":94.78363200025342,"saved":-72.6382310003828,"reduction_percent":-328.00594128237816,"saved_ci95":[-100.83954700075992,-34.86262999922474],"reduction_ci95":[-575.6334422553447,-76.68898317563]},{"name":"render50k-preview-thread-terminal_bytes","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"preview-thread"},"metric":"terminal_bytes","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":146513,"after_median":97519,"saved":48994,"reduction_percent":33.44003603775774,"saved_ci95":[46254.0,59048.0],"reduction_ci95":[32.171548204461196,37.71420542004382]},{"name":"render50k-timer500-wall_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"timer500"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":1304.146860000401,"after_median":524.7019909993469,"saved":779.444869001054,"reduction_percent":59.76664844332136,"saved_ci95":[525.5114830006278,1050.7122580002033],"reduction_ci95":[46.9164566609323,70.41279205062027]},{"name":"render50k-timer500-cpu_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"timer500"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":305.78843899999987,"after_median":417.79750699999994,"saved":-112.00906800000007,"reduction_percent":-36.62959540468439,"saved_ci95":[-220.16932699999978,37.39835099999999],"reduction_ci95":[-82.57853197575454,9.791117457407998]},{"name":"render50k-timer500-max_loop_delay_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"timer500"},"metric":"max_loop_delay_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":22.145400999870617,"after_median":21.228510999317223,"saved":0.9168900005533942,"reduction_percent":4.140317895163656,"saved_ci95":[-10.311580999768921,27.58457100026135],"reduction_ci95":[-58.86272838916127,60.67909108960098]},{"name":"render50k-timer500-terminal_bytes","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"timer500"},"metric":"terminal_bytes","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":146513,"after_median":236866,"saved":-90353,"reduction_percent":-61.66893040208036,"saved_ci95":[-118813.0,-58203.0],"reduction_ci95":[-82.63929945121824,-37.174500373641955]},{"name":"render50k-row-backend-wall_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"row-backend"},"metric":"wall_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":1304.146860000401,"after_median":67.13752700034092,"saved":1237.00933300006,"reduction_percent":94.85199642313901,"saved_ci95":[1044.9312600003395,1426.2575290003952],"reduction_ci95":[93.76893124082892,95.5797117959548]},{"name":"render50k-row-backend-cpu_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"row-backend"},"metric":"cpu_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":305.78843899999987,"after_median":62.19032400000013,"saved":243.59811499999972,"reduction_percent":79.66230371449714,"saved_ci95":[206.60044300000013,321.25261400000005],"reduction_ci95":[77.1511597948773,84.10590288254565]},{"name":"render50k-row-backend-max_loop_delay_ms","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"row-backend"},"metric":"max_loop_delay_ms","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":22.145400999870617,"after_median":19.278182000671222,"saved":2.8672189991993946,"reduction_percent":12.947243534746317,"saved_ci95":[-0.24244199994427618,27.435076000983827],"reduction_ci95":[-1.3839582497741891,60.350239838714586]},{"name":"render50k-row-backend-terminal_bytes","before":{"suite":"render","scenario":"render_50000_6_normal","variant":"baseline"},"after":{"suite":"render","scenario":"render_50000_6_normal","variant":"row-backend"},"metric":"terminal_bytes","n_before":5,"n_after":5,"paired_bootstrap":true,"before_median":146513,"after_median":77109,"saved":69404,"reduction_percent":47.370540498112796,"saved_ci95":[66664.0,79458.0],"reduction_ci95":[46.367537715704614,50.75015807928874]},{"name":"bandwidth-postgresql-0","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13788972,"after_median":274245,"saved":13514727,"reduction_percent":98.01112802317678,"saved_ci95":[13514727.0,13514727.0],"reduction_ci95":[98.01112802317678,98.01112802317678]},{"name":"bounded-query-postgresql-0","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":25.69303200016293,"after_median":1.5154900002016802,"saved":24.17754199996125,"reduction_percent":94.1015525135684,"saved_ci95":[20.973773999685363,30.32581599927653],"reduction_ci95":[92.6561406022781,94.26480569954718]},{"name":"metadata-one-query-postgresql-0","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":96.77414799989492,"after_median":110.12776100051269,"saved":-13.35361300061777,"reduction_percent":-13.798739928593605,"saved_ci95":[-23.88122399952408,-1.810679000300297],"reduction_ci95":[-25.056694685526537,-1.8061812117260587]},{"name":"metadata-batch-postgresql-0","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":96.77414799989492,"after_median":14.325459999781742,"saved":82.44868800011318,"reduction_percent":85.1970176996058,"saved_ci95":[74.68258199969569,88.08470700023463],"reduction_ci95":[83.9054318261873,86.63708193363524]},{"name":"connection-reuse-postgresql-0","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":0,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":7.936201999655168,"after_median":0.5633509999825037,"saved":7.372850999672664,"reduction_percent":92.90150376707925,"saved_ci95":[6.308493000688031,8.070179000242206],"reduction_ci95":[91.04550737529935,93.73212778024566]},{"name":"bandwidth-postgresql-20","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13788972,"after_median":274245,"saved":13514727,"reduction_percent":98.01112802317678,"saved_ci95":[13514727.0,13514727.0],"reduction_ci95":[98.01112802317678,98.01112802317678]},{"name":"bounded-query-postgresql-20","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":110.61880799934443,"after_median":42.339044000073045,"saved":68.27976399927138,"reduction_percent":61.72527550620147,"saved_ci95":[66.90618699940387,68.66688699938095],"reduction_ci95":[61.46705359463966,61.86751657547858]},{"name":"metadata-one-query-postgresql-20","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1724.68700599984,"after_median":924.814306999906,"saved":799.8726989999341,"reduction_percent":46.37784689148451,"saved_ci95":[793.1492339994293,810.0710779999645],"reduction_ci95":[46.05865616574862,46.910356905635005]},{"name":"metadata-batch-postgresql-20","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1724.68700599984,"after_median":51.55905600076949,"saved":1673.1279499990706,"reduction_percent":97.01052678999692,"saved_ci95":[1664.4267460005722,1679.052315998888],"reduction_ci95":[96.74545533161064,97.05250188140562]},{"name":"connection-reuse-postgresql-20","before":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"postgresql","one_way_delay_ms":20,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":170.0598560000799,"after_median":41.04356399966491,"saved":129.01629200041498,"reduction_percent":75.8652247714207,"saved_ci95":[127.57388700083538,132.53229200017813],"reduction_ci95":[75.68222851846075,76.34154685334155]},{"name":"bandwidth-mysql-0","before":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13439025,"after_median":267292,"saved":13171733,"reduction_percent":98.01107595231053,"saved_ci95":[13171733.0,13171733.0],"reduction_ci95":[98.01107595231053,98.01107595231053]},{"name":"bounded-query-mysql-0","before":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":123.98058500002662,"after_median":3.7755339999421267,"saved":120.2050510000845,"reduction_percent":96.95473771160113,"saved_ci95":[112.14977899999212,137.95339300122578],"reduction_ci95":[96.67097185901163,97.23151690448749]},{"name":"metadata-one-query-mysql-0","before":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":36.51849600009882,"after_median":17.043122999893967,"saved":19.475373000204854,"reduction_percent":53.33016179021215,"saved_ci95":[11.93321000027936,28.326448000370874],"reduction_ci95":[36.887565292693004,58.75568755954049]},{"name":"metadata-batch-mysql-0","before":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":36.51849600009882,"after_median":3.9081739996618126,"saved":32.61032200043701,"reduction_percent":89.29809705292563,"saved_ci95":[27.212658999815176,46.45417299980181],"reduction_ci95":[85.79272566951704,95.30339268854506]},{"name":"connection-reuse-mysql-0","before":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":0,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":2.1425599998110556,"after_median":0.6745709997630911,"saved":1.4679890000479645,"reduction_percent":68.51565417899246,"saved_ci95":[1.2579140002344502,2.7093130001958343],"reduction_ci95":[65.39333298141145,79.34367256273093]},{"name":"bandwidth-mysql-20","before":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13439025,"after_median":267292,"saved":13171733,"reduction_percent":98.01107595231053,"saved_ci95":[13171733.0,13171733.0],"reduction_ci95":[98.01107595231053,98.01107595231053]},{"name":"bounded-query-mysql-20","before":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":163.16324600029475,"after_median":44.16488199967716,"saved":118.99836400061758,"reduction_percent":72.9320891301725,"saved_ci95":[114.16872999961925,126.95418299972516],"reduction_ci95":[72.16194171839854,74.17876557745278]},{"name":"metadata-one-query-mysql-20","before":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1673.0309410004338,"after_median":837.7198759999374,"saved":835.3110650004965,"reduction_percent":49.92801056631982,"saved_ci95":[832.7434390002963,838.6684639999658],"reduction_ci95":[49.72066944189178,50.08295618777195]},{"name":"metadata-batch-mysql-20","before":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1673.0309410004338,"after_median":44.17957700024999,"saved":1628.8513640001838,"reduction_percent":97.35930902904691,"saved_ci95":[1627.2573790001843,1632.131596000363],"reduction_ci95":[97.31332512917939,97.46637524117972]},{"name":"connection-reuse-mysql-20","before":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"mysql","one_way_delay_ms":20,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":185.51556399961555,"after_median":41.52900600001885,"saved":143.9865579995967,"reduction_percent":77.6142739160662,"saved_ci95":[141.8017530004363,146.35275900036504],"reduction_ci95":[76.50578849261345,77.98063062833684]},{"name":"bandwidth-mariadb-0","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13439025,"after_median":267292,"saved":13171733,"reduction_percent":98.01107595231053,"saved_ci95":[13171733.0,13171733.0],"reduction_ci95":[98.01107595231053,98.01107595231053]},{"name":"bounded-query-mariadb-0","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":120.43380999966757,"after_median":3.7658719993487466,"saved":116.66793800031883,"reduction_percent":96.87307741957251,"saved_ci95":[107.51823200007493,137.04820499970083],"reduction_ci95":[95.73015999362268,97.35457106002201]},{"name":"metadata-one-query-mariadb-0","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":17.48068099914235,"after_median":11.497858999973687,"saved":5.982821999168664,"reduction_percent":34.225337099064944,"saved_ci95":[3.7557209998340113,21.209730000009586],"reduction_ci95":[21.604935678905473,64.4527752968044]},{"name":"metadata-batch-mariadb-0","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":17.48068099914235,"after_median":3.458918999967864,"saved":14.021761999174487,"reduction_percent":80.21290474817562,"saved_ci95":[12.525099999038503,28.96149299976969],"reduction_ci95":[76.04333506269505,93.67254424223208]},{"name":"connection-reuse-mariadb-0","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":0,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":2.1202469997660955,"after_median":0.6592699992324924,"saved":1.4609770005336031,"reduction_percent":68.90598126986042,"saved_ci95":[1.303540000662906,1.7486330007159268],"reduction_ci95":[52.886731755538364,76.11063462431363]},{"name":"bandwidth-mariadb-20","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"rx_bytes","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":13439025,"after_median":267292,"saved":13171733,"reduction_percent":98.01107595231053,"saved_ci95":[13171733.0,13171733.0],"reduction_ci95":[98.01107595231053,98.01107595231053]},{"name":"bounded-query-mariadb-20","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"buffered_cap_1000"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"server_limit_1001"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":155.95739299988054,"after_median":44.326877999992575,"saved":111.63051499988796,"reduction_percent":71.57757183077142,"saved_ci95":[93.04141600023286,113.91956499937805],"reduction_ci95":[68.28500146469617,72.48374143900818]},{"name":"metadata-one-query-mariadb-20","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"metadata_one_query_per_table"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1660.8558600000833,"after_median":833.6586920004265,"saved":827.1971679996568,"reduction_percent":49.80547607542628,"saved_ci95":[820.6848790005097,833.959034000145],"reduction_ci95":[49.49634651763932,50.17117480034955]},{"name":"metadata-batch-mariadb-20","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"metadata_per_table"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"metadata_batch"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":1660.8558600000833,"after_median":43.67876400010573,"saved":1617.1770959999776,"reduction_percent":97.37010507341056,"saved_ci95":[1613.3824680000544,1620.0035010006104],"reduction_ci95":[97.31177084145507,97.46053642577502]},{"name":"connection-reuse-mariadb-20","before":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"connect_query_close"},"after":{"suite":"network","provider":"mariadb","one_way_delay_ms":20,"scenario":"reuse_query"},"metric":"wall_ms","n_before":9,"n_after":9,"paired_bootstrap":true,"before_median":226.61456700006966,"after_median":41.185533000316354,"saved":185.4290339997533,"reduction_percent":81.82573452998558,"saved_ci95":[184.76908200136677,186.25121700006275],"reduction_ci95":[81.61522603131387,81.93853354969694]}],"environments":[{"date_utc":"2026-09-10T03:22:42Z","platform":"Linux-6.19.9-arch1-1-x86_64-with-glibc2.44","cpu_count":8,"loadavg":[13.572265625,7.37744140625,5.74267578125],"source_commits":{"baseline":"9db49c230c7cab6abe497d14b9f51e39ad30cb42","candidate":"0640c96464dcb50434f97b14d097418b51b110ba"},"lab_files_sha256":{"run.py":"dda670f2285fbd70b83517e284ad20e9b21b8f13aba98e69bb807bb752846ef8","variants.py":"7b73001644ea9a151aed6bfc4e8106243cd0099088905fd46a260462f1064fef","row_backend.py":"433e72b8146d02125f49a153abb14e558ad624408136e852c81d7f2bed179da6","cpu_lab.py":"53ccd03c00c60cba25d34b86647002a9a4e9d612cb4554d3b2059772a0a6f9b1","database_lab.py":"a24c71c84af57b26b69ec38beadf6f22b08fbaaa831f0a2c2144645a1ccf570e","local_database_lab.py":"63b5252a90d324eb641c306206db213dfc4af22ea8f6cb010bae144d70700297","study.py":"659c823cf02531473cbae9e901672ddbb77b39f3da5c313878be0b1cc7a7d66d"},"argv":["labs/performance/study.py","--baseline","/home/peter/GIT/sqlit-performance-baseline","--candidate","/home/peter/GIT/sqlit-performance-study","--python","/home/peter/GIT/sqlit-performance-study/.venv/bin/python","--output","labs/performance/evidence/study","--docker"],"measurement_python":"/home/peter/GIT/sqlit-performance-study/.venv/bin/python","cpuinfo":"processor\t: 0\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 189\nmodel name\t: Intel(R) Core(TM) Ultra 5 228V\nstepping\t: 1\nmicrocode\t: 0x125\ncpu MHz\t\t: 3600.000\ncache size\t: 8192 KB\nphysical id\t: 0\nsiblings\t: 8\ncore id\t\t: 0\ncpu cores\t: 8\napicid\t\t: 0\ninitial apicid\t: 0\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 35\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni lam wbnoinvd dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid bus_lock_detect movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities\nvmx flags\t: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs pml ept_violation_ve ept_mode_based_exec tsc_scaling usr_wait_pause notify_vm_exiting ipi_virt\nbugs\t\t: monitor spectre_v1 spectre_v2 spec_store_bypass swapgs bhi spectre_v2_user vmscape\nbogomips\t: 6220.80\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 42 bits physical, 48 bits virtual\npower management:","meminfo":"MemTotal: 32306044 kB\nMemFree: 1047232 kB\nMemAvailable: 10093628 kB\nBuffers: 28 kB\nCached: 11107696 kB\nSwapCached: 3044 kB\nActive: 10321520 kB\nInactive: 15498844 kB\nActive(anon): 8790328 kB\nInactive(anon): 8521384 kB\nActive(file): 1531192 kB\nInactive(file): 6977460 kB\nUnevictable: 67560 kB\nMlocked: 456 kB\nSwapTotal: 4194300 kB\nSwapFree: 4 kB\nZswap: 0 kB\nZswapped: 0 kB\nDirty: 14836 kB\nWriteback: 0 kB\nAnonPages: 14349304 kB\nMapped: 1900412 kB\nShmem: 2599488 kB\nKReclaimable: 1013344 kB\nSlab: 1414728 kB\nSReclaimable: 1013344 kB\nSUnreclaim: 401384 kB\nKernelStack: 71968 kB\nPageTables: 199732 kB\nSecPageTables: 3336 kB\nNFS_Unstable: 0 kB\nBounce: 0 kB\nWritebackTmp: 0 kB\nCommitLimit: 20347320 kB\nCommitted_AS: 74017140 kB\nVmallocTotal: 34359738367 kB\nVmallocUsed: 140480 kB\nVmallocChunk: 0 kB\nPercpu: 7488 kB\nHardwareCorrupted: 0 kB\nAnonHugePages: 4739072 kB\nShmemHugePages: 227328 kB\nShmemPmdMapped: 153600 kB\nFileHugePages: 206848 kB\nFilePmdMapped: 202752 kB\nCmaTotal: 0 kB\nCmaFree: 0 kB\nUnaccepted: 0 kB\nBalloon: 0 kB\nHugePages_Total: 0\nHugePages_Free: 0\nHugePages_Rsvd: 0\nHugePages_Surp: 0\nHugepagesize: 2048 kB\nHugetlb: 0 kB\nDirectMap4k: 6660012 kB\nDirectMap2M: 26353664 kB\nDirectMap1G: 0 kB\n","governors":{"/sys/devices/system/cpu/cpufreq/policy6/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy4/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy2/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy0/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy7/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy5/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy3/scaling_governor":"powersave","/sys/devices/system/cpu/cpufreq/policy1/scaling_governor":"powersave"},"packages":{"python":"3.13.5 (main, Jul 23 2025, 00:37:22) [Clang 20.1.4 ]","packages":{"PyMySQL":"1.1.2","pytest-timeout":"2.4.0","sqlit-tui":"1.6.5.dev3+g9db49c230","build":"1.3.0","ruff":"0.14.10","tree-sitter-java":"0.23.5","PyYAML":"6.0.3","jeepney":"0.9.0","tree-sitter-javascript":"0.25.0","SecretStorage":"3.5.0","boto3":"1.42.18","tree-sitter-json":"0.24.8","tree-sitter-markdown":"0.5.1","tree-sitter-python":"0.25.0","docker":"7.1.0","tree-sitter-regex":"0.25.0","tree-sitter-rust":"0.24.0","markdown-it-py":"4.0.0","virtualenv":"20.35.4","tree-sitter-sql":"0.3.11","tree-sitter-toml":"0.7.0","keyring":"25.7.0","iniconfig":"2.3.0","tree-sitter-xml":"0.7.0","pluggy":"1.6.0","pyperclip":"1.11.0","mdit-py-plugins":"0.5.0","tree-sitter-yaml":"0.7.2","sqlparse":"0.5.5","platformdirs":"4.5.1","asn1crypto":"1.5.1","tomlkit":"0.13.3","rich":"14.2.0","distlib":"0.4.0","more-itertools":"10.8.0","tree-sitter":"0.25.2","mdurl":"0.1.2","tree-sitter-bash":"0.25.1","linkify-it-py":"2.0.3","tree-sitter-css":"0.25.0","tree-sitter-go":"0.25.0","jmespath":"1.0.1","tree-sitter-html":"0.23.2","s3transfer":"0.16.0","python-dateutil":"2.9.0.post0","fakesnow":"0.11.0","pytest-asyncio":"1.3.0","cffi":"2.0.0","pytest-benchmark":"5.2.3","uc-micro-py":"1.0.3","six":"1.17.0","pycparser":"2.23","pytest-cov":"7.0.0","mypy_extensions":"1.1.0","pathspec":"0.12.1","typing_extensions":"4.15.0","textual":"8.2.8","cfgv":"3.5.0","textual-fastdatatable":"0.19.0","identify":"2.6.15","tzdata":"2025.3","nodeenv":"1.10.0","Pygments":"2.19.2","filelock":"3.20.1","idna":"3.11","py-cpuinfo":"9.0.0","PyJWT":"2.10.1","duckdb":"1.4.3","pyOpenSSL":"25.3.0","psycopg2-binary":"2.9.11","coverage":"7.13.1","Faker":"40.1.0","packaging":"25.0","pyproject_hooks":"1.2.0","requests":"2.32.5","pre_commit":"4.5.1","urllib3":"2.6.2","jaraco.classes":"3.4.0","jaraco.functools":"4.4.0","certifi":"2025.11.12","jaraco.context":"6.0.2","charset-normalizer":"3.4.4","pytest":"9.0.2","snowflake-connector-python":"4.1.1","sortedcontainers":"2.4.0","librt":"0.7.5","cryptography":"46.0.3","mypy":"1.19.1","sqlglot":"28.3.0","pytz":"2025.2","pyarrow":"21.0.0","botocore":"1.42.18"}}}],"method":{"median_bootstrap_draws":2000,"effect_bootstrap_draws":5000,"ci":0.95,"tails":"p95 is descriptive; small samples do not establish an SLO","multiplicity":"Exploratory intervals; no adjustment for multiple comparisons"}} diff --git a/docs/performance/diagnostics/cells.png b/docs/performance/diagnostics/cells.png new file mode 100644 index 00000000..8dc38c6b Binary files /dev/null and b/docs/performance/diagnostics/cells.png differ diff --git a/docs/performance/diagnostics/completion-baseline.trace.json b/docs/performance/diagnostics/completion-baseline.trace.json new file mode 100644 index 00000000..e09f5ab2 --- /dev/null +++ b/docs/performance/diagnostics/completion-baseline.trace.json @@ -0,0 +1 @@ +{"traceEvents": [{"name": "autocomplete_1000_routines", "ph": "X", "pid": 1, "tid": 1, "ts": 949781.3830002997, "dur": 84694.18300001053, "args": {"name": "autocomplete_1000_routines", "wall_ms": 84.69418300001053, "cpu_ms": 84.12002000000001, "frames": 1, "terminal_bytes": 18297, "watchdog_events": 1, "maxrss_kib": 112212, "routines": 1000, "suggestions": 50}}, {"name": "autocomplete_5000_routines", "ph": "X", "pid": 1, "tid": 1, "ts": 1142812.5279999222, "dur": 1633706.478000022, "args": {"name": "autocomplete_5000_routines", "wall_ms": 1633.706478000022, "cpu_ms": 1626.7642890000002, "frames": 1, "terminal_bytes": 20541, "watchdog_events": 1, "maxrss_kib": 116308, "routines": 5000, "suggestions": 50}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 89807.49300008029, "args": {"delay_ms": 21.614800000061223}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 95183.39400028708, "args": {"delay_ms": 0.3748970003653084}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 100381.05000012365, "args": {"delay_ms": 0.1959389998046389}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 105488.19599989656, "args": {"delay_ms": 0.10663099976227375}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 119105.60800015446, "args": {"delay_ms": 8.616334999824174}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 127055.60099993818, "args": {"delay_ms": 2.948701999794139}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 132200.06500023374, "args": {"delay_ms": 0.14382900018972566}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 137322.10400030453, "args": {"delay_ms": 0.12104700010240765}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 143109.67600022195, "args": {"delay_ms": 0.7873109999491134}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 148224.66000032364, "args": {"delay_ms": 0.1143890000275859}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 153423.17700014974, "args": {"delay_ms": 0.19828599999527785}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 158635.4900000515, "args": {"delay_ms": 0.2110930000708321}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 163729.11999997086, "args": {"delay_ms": 0.09202299963362737}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 168805.5150002583, "args": {"delay_ms": 0.07534600001235947}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 173877.36399996356, "args": {"delay_ms": 0.07116599965229387}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 178956.05400008208, "args": {"delay_ms": 0.07844499998100207}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 184074.63700032167, "args": {"delay_ms": 0.118178000429907}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 189143.9129999526, "args": {"delay_ms": 0.06822899978942576}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 194819.02000006812, "args": {"delay_ms": 0.6749499999568797}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 199907.31500001857, "args": {"delay_ms": 0.08759000013014873}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 205137.9839999754, "args": {"delay_ms": 0.23049899993566203}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 210214.3460001571, "args": {"delay_ms": 0.07543000003352052}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 215335.45100010087, "args": {"delay_ms": 0.12071100001776347}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 220449.23100020242, "args": {"delay_ms": 0.11332399992170383}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 225563.3240001771, "args": {"delay_ms": 0.11263999987932027}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 230666.71600008704, "args": {"delay_ms": 0.10110599998370151}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 235749.8169999417, "args": {"delay_ms": 0.08247299967479182}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 240823.68100016538, "args": {"delay_ms": 0.07303799986402726}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 245892.337999976, "args": {"delay_ms": 0.06821399994805677}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 251012.59500024753, "args": {"delay_ms": 0.12005800010228984}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 256077.31199988848, "args": {"delay_ms": 0.06449799968322611}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 261187.33400016936, "args": {"delay_ms": 0.10961600002701732}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 266296.63499988965, "args": {"delay_ms": 0.10820299996339588}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 271408.8820002871, "args": {"delay_ms": 0.110109000270313}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 276497.9100002165, "args": {"delay_ms": 0.0884840002254349}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 281612.57100009604, "args": {"delay_ms": 0.11452399996414886}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 286719.4559999007, "args": {"delay_ms": 0.10636199987857242}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 291786.1539999649, "args": {"delay_ms": 0.06607299985262205}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 296851.5440002193, "args": {"delay_ms": 0.06482700029664545}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 302007.11699990276, "args": {"delay_ms": 0.15546899987384666}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 307089.00800027547, "args": {"delay_ms": 0.08159800028806774}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 312158.55200025544, "args": {"delay_ms": 0.06830099993749161}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 317273.06399989175, "args": {"delay_ms": 0.11417899997468328}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 322381.86599988694, "args": {"delay_ms": 0.10854399999516307}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 327494.7530003374, "args": {"delay_ms": 0.11202400002730417}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 332584.2300000659, "args": {"delay_ms": 0.08834399988700159}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 337652.9910001409, "args": {"delay_ms": 0.0686330000644374}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 342716.2840002893, "args": {"delay_ms": 0.06311200024356356}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 348290.3690000967, "args": {"delay_ms": 0.5735959999765327}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 353522.24600001134, "args": {"delay_ms": 0.231391000052099}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 358635.11500019743, "args": {"delay_ms": 0.11178099986864243}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 363700.6500002826, "args": {"delay_ms": 0.06484500010628824}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 368770.21200007224, "args": {"delay_ms": 0.06937899990589347}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 373840.15599991474, "args": {"delay_ms": 0.06849999965197628}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 378919.5140002448, "args": {"delay_ms": 0.07903500010797859}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 384022.15499991144, "args": {"delay_ms": 0.10185699977228058}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 389129.5410003295, "args": {"delay_ms": 0.10610100036501524}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 394238.2630002612, "args": {"delay_ms": 0.10732400016422605}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 399315.06700031605, "args": {"delay_ms": 0.0759120003931456}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 404553.0030002737, "args": {"delay_ms": 0.23732800002107968}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 409645.90400017187, "args": {"delay_ms": 0.09239400025762723}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 414719.54000007827, "args": {"delay_ms": 0.07238699992740283}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 419801.83200030297, "args": {"delay_ms": 0.08115200000247558}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 424877.01500022016, "args": {"delay_ms": 0.07434400014972187}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 429960.7910002123, "args": {"delay_ms": 0.08339199996044033}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 435068.35600010166, "args": {"delay_ms": 0.10633900012180664}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 440183.06699990714, "args": {"delay_ms": 0.11325699972076098}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 445253.18700016214, "args": {"delay_ms": 0.06950599992705964}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 450349.58699989144, "args": {"delay_ms": 0.09612699988792872}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 455416.0170000614, "args": {"delay_ms": 0.06612299977859937}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 460493.1769999894, "args": {"delay_ms": 0.07687899971642753}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 465601.74500018544, "args": {"delay_ms": 0.10780600006910379}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 470807.37900023453, "args": {"delay_ms": 0.20390100018630608}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 475966.66000026744, "args": {"delay_ms": 0.15770800029713417}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 481075.1469999559, "args": {"delay_ms": 0.10683399988920417}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 486202.91099996393, "args": {"delay_ms": 0.12619799974345358}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 491298.23000021133, "args": {"delay_ms": 0.09437400023671205}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 496914.7380002141, "args": {"delay_ms": 0.6145230000765877}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 502165.3799999512, "args": {"delay_ms": 0.24852999978975265}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 507307.7659999399, "args": {"delay_ms": 0.14055299981919223}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 512460.5870000778, "args": {"delay_ms": 0.1496820001375453}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 517621.77899991, "args": {"delay_ms": 0.1589899999271437}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 522716.27300024196, "args": {"delay_ms": 0.09135099991908635}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 527832.6590000688, "args": {"delay_ms": 0.11435199996412837}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 532939.1949999263, "args": {"delay_ms": 0.1049919998149561}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 538038.7000000156, "args": {"delay_ms": 0.09812800009967748}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 543262.6400001936, "args": {"delay_ms": 0.22273400019912504}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 548402.1180000127, "args": {"delay_ms": 0.1369640000302751}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 553645.26700032, "args": {"delay_ms": 0.24107700039166946}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 558769.4509999892, "args": {"delay_ms": 0.12175899984868}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 563898.8989999234, "args": {"delay_ms": 0.1278949999868927}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 569030.5680000165, "args": {"delay_ms": 0.12956600005054486}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 574163.8730000886, "args": {"delay_ms": 0.1306629998180141}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 579315.0409999725, "args": {"delay_ms": 0.1477980000527167}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 584456.0969999293, "args": {"delay_ms": 0.13717099966015656}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 589640.3350002401, "args": {"delay_ms": 0.18201100021542505}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 594756.1699999823, "args": {"delay_ms": 0.1130570000168517}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 599836.5260002174, "args": {"delay_ms": 0.07966400027726184}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 605006.6930001776, "args": {"delay_ms": 0.1690450000023701}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 610132.5290001114, "args": {"delay_ms": 0.12535600000774128}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 615261.5949999926, "args": {"delay_ms": 0.12759999992340443}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 620383.5010001058, "args": {"delay_ms": 0.12141999979576201}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 625535.7190002542, "args": {"delay_ms": 0.15010500021162432}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 630638.2520001534, "args": {"delay_ms": 0.10035300021627325}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 635702.8400002491, "args": {"delay_ms": 0.06426800029657886}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 640775.6309999968, "args": {"delay_ms": 0.07213599985334429}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 646200.1069999132, "args": {"delay_ms": 0.42425200001162}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 651491.7140002581, "args": {"delay_ms": 0.2908550001120601}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 656611.408000117, "args": {"delay_ms": 0.11843000003864279}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 661745.7259999355, "args": {"delay_ms": 0.13262399999803154}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 666859.5420001111, "args": {"delay_ms": 0.11245699999562919}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 671963.1430000846, "args": {"delay_ms": 0.10212900007900305}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 677081.9600001232, "args": {"delay_ms": 0.11760600011257327}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 682197.6500000346, "args": {"delay_ms": 0.11320899977363286}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 687290.7730003134, "args": {"delay_ms": 0.09256000032110012}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 692429.7450000268, "args": {"delay_ms": 0.13770699990345736}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 697512.0940001034, "args": {"delay_ms": 0.08083800013991993}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 702715.9419999407, "args": {"delay_ms": 0.2033980000487644}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 707815.5240001251, "args": {"delay_ms": 0.09892899981423386}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 712925.6480002368, "args": {"delay_ms": 0.10877900023842801}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 718029.407999893, "args": {"delay_ms": 0.10188699990976591}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 723157.7090001338, "args": {"delay_ms": 0.12698000011368993}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 728264.8069999595, "args": {"delay_ms": 0.10559699978330161}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 733368.9950000916, "args": {"delay_ms": 0.10279699983584567}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 738466.4350001912, "args": {"delay_ms": 0.09626000030038984}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 743563.6190002697, "args": {"delay_ms": 0.09669400025813946}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 748703.8510003004, "args": {"delay_ms": 0.1387240000622113}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 753885.4019999235, "args": {"delay_ms": 0.1777949997813265}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 758958.9760000308, "args": {"delay_ms": 0.0728989999697659}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 764076.1580000799, "args": {"delay_ms": 0.11536099975273817}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 769238.7910001343, "args": {"delay_ms": 0.16128099980051036}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 774345.9390003409, "args": {"delay_ms": 0.1062420002381258}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 779449.4530003249, "args": {"delay_ms": 0.10156900008951186}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 784587.4899999216, "args": {"delay_ms": 0.1370389996918674}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 789671.7759999774, "args": {"delay_ms": 0.08305799985464535}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 794923.1279999367, "args": {"delay_ms": 0.2506590000120922}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 800261.1659999274, "args": {"delay_ms": 0.337182999937795}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 805409.2820002552, "args": {"delay_ms": 0.14687400027469255}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 810531.1879999135, "args": {"delay_ms": 0.12099799971110758}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 815646.5330002902, "args": {"delay_ms": 0.11501300024974614}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 820727.0000002609, "args": {"delay_ms": 0.07981999999174139}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 825807.9060001364, "args": {"delay_ms": 0.07934799998110964}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 830905.1129999716, "args": {"delay_ms": 0.09675700004663657}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 836030.2690002754, "args": {"delay_ms": 0.12294700001802983}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 841115.5429998871, "args": {"delay_ms": 0.08455199997115403}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 846210.9880001663, "args": {"delay_ms": 0.0949149999723885}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 851433.4589999635, "args": {"delay_ms": 0.22107300002971886}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 856597.8110000287, "args": {"delay_ms": 0.16354799992768665}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 861704.120000013, "args": {"delay_ms": 0.10544300004767126}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 866821.0800001362, "args": {"delay_ms": 0.1143830000910383}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 872698.6820001912, "args": {"delay_ms": 0.8757310002874873}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 877783.1810002681, "args": {"delay_ms": 0.08317799994983932}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 882866.2300002179, "args": {"delay_ms": 0.08229300021412189}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 887947.8690000724, "args": {"delay_ms": 0.08100900015051582}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 893018.3990000841, "args": {"delay_ms": 0.06987300013861375}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 898113.5409999297, "args": {"delay_ms": 0.09494599964455108}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 903319.3560003383, "args": {"delay_ms": 0.20404100006999204}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 908413.5410003001, "args": {"delay_ms": 0.093299000236584}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 913496.3450001123, "args": {"delay_ms": 0.0822029998016659}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 918623.081000078, "args": {"delay_ms": 0.1265709998915553}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 923750.4890002129, "args": {"delay_ms": 0.12691099993389787}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 928855.8870002816, "args": {"delay_ms": 0.10343600035412226}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 933947.9049999681, "args": {"delay_ms": 0.0908819998767284}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 939071.6779998911, "args": {"delay_ms": 0.12271199977476488}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 944185.3690000244, "args": {"delay_ms": 0.11298299988993665}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 949766.5779999807, "args": {"delay_ms": 0.580259999987902}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1034243.005999997, "args": {"delay_ms": 79.47579699986818}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1040146.4910000868, "args": {"delay_ms": 0.9027460001743747}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1045267.4789999037, "args": {"delay_ms": 0.11991299981673353}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1050407.3500001142, "args": {"delay_ms": 0.13916899990363152}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1062433.0050000027, "args": {"delay_ms": 7.023536000015156}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1068460.8270003083, "args": {"delay_ms": 1.026605999977619}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1073611.1300002448, "args": {"delay_ms": 0.14942100016924076}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1078722.3269999232, "args": {"delay_ms": 0.10892699958276342}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1083911.5430003402, "args": {"delay_ms": 0.18723700042755798}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1089112.7550003147, "args": {"delay_ms": 0.20004200006951567}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1094223.7449999084, "args": {"delay_ms": 0.11017999997420691}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1099754.2039999643, "args": {"delay_ms": 0.5294369999501213}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1104913.253000177, "args": {"delay_ms": 0.1585960000011254}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1110049.010000239, "args": {"delay_ms": 0.13310599990290928}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1115121.4410001556, "args": {"delay_ms": 0.07197300021289255}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1120237.2560001095, "args": {"delay_ms": 0.11520000009113562}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1125344.9720002208, "args": {"delay_ms": 0.10731700023825386}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1130443.5490001198, "args": {"delay_ms": 0.09776399985639717}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1135657.6250000217, "args": {"delay_ms": 0.21261399990180496}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1140736.765999918, "args": {"delay_ms": 0.07833899973775249}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 2775598.195999919, "args": {"delay_ms": 1629.8609389997364}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 2781127.2839999218, "args": {"delay_ms": 0.5285919997913878}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 2786238.352000055, "args": {"delay_ms": 0.11039000002710952}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 2791340.1840000916, "args": {"delay_ms": 0.10096000016346796}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 2796438.7830002126, "args": {"delay_ms": 0.09774400006790518}}]} diff --git a/docs/performance/diagnostics/completion-candidate.trace.json b/docs/performance/diagnostics/completion-candidate.trace.json new file mode 100644 index 00000000..1399ded3 --- /dev/null +++ b/docs/performance/diagnostics/completion-candidate.trace.json @@ -0,0 +1 @@ +{"traceEvents": [{"name": "autocomplete_1000_routines", "ph": "X", "pid": 1, "tid": 1, "ts": 963337.8060002542, "dur": 19332.694999775413, "args": {"name": "autocomplete_1000_routines", "wall_ms": 19.332694999775413, "cpu_ms": 19.303212999999985, "frames": 1, "terminal_bytes": 18297, "watchdog_events": 0, "maxrss_kib": 112368, "routines": 1000, "suggestions": 50}}, {"name": "autocomplete_5000_routines", "ph": "X", "pid": 1, "tid": 1, "ts": 1090710.192000188, "dur": 30928.240999855916, "args": {"name": "autocomplete_5000_routines", "wall_ms": 30.928240999855916, "cpu_ms": 30.804704000000015, "frames": 2, "terminal_bytes": 20541, "watchdog_events": 0, "maxrss_kib": 118000, "routines": 5000, "suggestions": 50}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 107225.53200002949, "args": {"delay_ms": 28.04252499992799}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 112660.99100021165, "args": {"delay_ms": 0.43419899986474764}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 117759.18700004695, "args": {"delay_ms": 0.09606600007828081}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 122854.25800018857, "args": {"delay_ms": 0.0940750002155254}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 137249.14100021124, "args": {"delay_ms": 9.394045000244658}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 145635.46300041708, "args": {"delay_ms": 3.385311000438378}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 150760.42500004405, "args": {"delay_ms": 0.1243119996797758}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 155882.2090000831, "args": {"delay_ms": 0.1200349998907767}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 161202.35400012461, "args": {"delay_ms": 0.31838500000958436}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 166310.64100010917, "args": {"delay_ms": 0.1067079998574626}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 171413.49300027287, "args": {"delay_ms": 0.1008860000365529}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 176599.50699999172, "args": {"delay_ms": 0.1847229997292742}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 181731.17600008482, "args": {"delay_ms": 0.13002899970160786}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 186856.21800023, "args": {"delay_ms": 0.12424999988070329}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 191927.69500023132, "args": {"delay_ms": 0.0707939999483641}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 196998.49700009509, "args": {"delay_ms": 0.07053999990603177}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 202071.06800035035, "args": {"delay_ms": 0.07202500011771906}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 207177.2970002712, "args": {"delay_ms": 0.1045370000792899}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 212450.13200041285, "args": {"delay_ms": 0.27252800020505663}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 217569.50400003916, "args": {"delay_ms": 0.11894300007043046}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 222711.7200000066, "args": {"delay_ms": 0.14004899969222595}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 227871.23700027223, "args": {"delay_ms": 0.15706400028648193}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 233020.79700033573, "args": {"delay_ms": 0.14698000006319478}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 238135.08800003547, "args": {"delay_ms": 0.11183399976289354}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 243293.8900001318, "args": {"delay_ms": 0.15814999971553323}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 248479.20199999862, "args": {"delay_ms": 0.1802749999296792}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 253639.4220001057, "args": {"delay_ms": 0.1573339997048605}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 258794.04600027556, "args": {"delay_ms": 0.15158400003201666}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 263875.59900013, "args": {"delay_ms": 0.08110900000247045}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 268971.0220001871, "args": {"delay_ms": 0.09309200015195518}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 274052.5809999781, "args": {"delay_ms": 0.08100399974864547}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 279173.5770001651, "args": {"delay_ms": 0.12007199995423423}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 284294.1230001088, "args": {"delay_ms": 0.11985699995420862}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 289406.635999967, "args": {"delay_ms": 0.110576999868499}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 294578.26700036094, "args": {"delay_ms": 0.16888000038306916}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 299733.38100035104, "args": {"delay_ms": 0.15080200011652767}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 304829.15500033414, "args": {"delay_ms": 0.09525300003588189}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 310011.558000042, "args": {"delay_ms": 0.18187599982411473}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 315079.34600040247, "args": {"delay_ms": 0.06756400000085694}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 320147.8640003188, "args": {"delay_ms": 0.06816899996920245}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 325311.89800010907, "args": {"delay_ms": 0.16359899984308857}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 330415.76000005077, "args": {"delay_ms": 0.10045099963463133}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 335538.98700029094, "args": {"delay_ms": 0.1226720001977809}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 340656.0390003506, "args": {"delay_ms": 0.11604500024986908}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 345756.18600001687, "args": {"delay_ms": 0.09994499998356321}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 350878.36800039443, "args": {"delay_ms": 0.12105100006010605}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 355969.8830003981, "args": {"delay_ms": 0.09047900004588871}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 361138.16800025234, "args": {"delay_ms": 0.1668959999915386}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 366213.4680002964, "args": {"delay_ms": 0.0748409998959686}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 371283.93200009665, "args": {"delay_ms": 0.06910300009621995}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 376369.3420000891, "args": {"delay_ms": 0.08514100010870596}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 381510.9300003314, "args": {"delay_ms": 0.14071199995669292}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 386632.4919999897, "args": {"delay_ms": 0.12034999974275695}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 391766.15200040035, "args": {"delay_ms": 0.12869100020907343}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 396840.8800001271, "args": {"delay_ms": 0.07419799987474096}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 401909.5040002867, "args": {"delay_ms": 0.068405000201892}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 406999.61700011045, "args": {"delay_ms": 0.08976699984486902}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 412214.01400025573, "args": {"delay_ms": 0.21399700028268842}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 417304.43500000547, "args": {"delay_ms": 0.08958099999290414}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 422401.1460000838, "args": {"delay_ms": 0.09648099978221569}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 427522.3670001651, "args": {"delay_ms": 0.12040400008118002}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 432619.5590001589, "args": {"delay_ms": 0.09634899981392653}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 437718.980000227, "args": {"delay_ms": 0.09857999986706989}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 442848.0350002246, "args": {"delay_ms": 0.12876799984951492}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 447934.88300001627, "args": {"delay_ms": 0.08649599987620593}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 453005.4320002819, "args": {"delay_ms": 0.06859699999040447}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 458072.9950002933, "args": {"delay_ms": 0.06711900015943673}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 463316.98200037866, "args": {"delay_ms": 0.24340100037079526}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 468430.4810002686, "args": {"delay_ms": 0.11288500001683122}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 473543.4640001586, "args": {"delay_ms": 0.11255799983700843}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 478654.4040002809, "args": {"delay_ms": 0.11013899995305099}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 483761.9120003183, "args": {"delay_ms": 0.10718500026996469}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 488879.8410001982, "args": {"delay_ms": 0.11628799995378347}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 493958.4170001581, "args": {"delay_ms": 0.07802799984347064}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 499036.94700014964, "args": {"delay_ms": 0.07773099980113318}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 504115.2220001095, "args": {"delay_ms": 0.07740800003375614}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 509250.11100025586, "args": {"delay_ms": 0.13383799989242096}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 514358.7430002299, "args": {"delay_ms": 0.10604400005831838}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 519441.93400004227, "args": {"delay_ms": 0.08224399982282182}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 524543.2810002058, "args": {"delay_ms": 0.10095900017404336}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 529664.0490000754, "args": {"delay_ms": 0.1198099999965051}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 534764.9720001755, "args": {"delay_ms": 0.09952899983545638}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 539831.1930002819, "args": {"delay_ms": 0.0655380000534932}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 544908.4860001677, "args": {"delay_ms": 0.07630399988556735}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 549981.009000021, "args": {"delay_ms": 0.07186699996964296}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 555055.9350003824, "args": {"delay_ms": 0.07457100002284267}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 560258.5370002089, "args": {"delay_ms": 0.202403000112099}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 565347.17500017, "args": {"delay_ms": 0.08836100016196713}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 570456.3620001863, "args": {"delay_ms": 0.1088099999105906}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 575568.9770003301, "args": {"delay_ms": 0.11206999999558309}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 580690.3400002739, "args": {"delay_ms": 0.11994099997536967}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 585761.7360002223, "args": {"delay_ms": 0.07012000025497389}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 590864.1949999947, "args": {"delay_ms": 0.10222899993095769}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 595930.3010004078, "args": {"delay_ms": 0.06438600041292364}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 601000.4910003772, "args": {"delay_ms": 0.06981800026551344}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 606065.5510000288, "args": {"delay_ms": 0.06492999966212654}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 611359.3160002893, "args": {"delay_ms": 0.29365300008066686}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 616474.2860000842, "args": {"delay_ms": 0.11199199991096964}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 621550.9040002872, "args": {"delay_ms": 0.076150000149937}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 626675.5260003265, "args": {"delay_ms": 0.1238350001767684}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 631786.170000396, "args": {"delay_ms": 0.10975700035487523}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 636867.6160000177, "args": {"delay_ms": 0.08029299999179773}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 641950.3460001579, "args": {"delay_ms": 0.08156800015058241}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 647035.0849999704, "args": {"delay_ms": 0.08356999989700842}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 652109.3840001413, "args": {"delay_ms": 0.07379000009677827}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 657248.3400000237, "args": {"delay_ms": 0.1387469998189771}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 662487.0520004152, "args": {"delay_ms": 0.2357460003804589}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 667580.3910002287, "args": {"delay_ms": 0.09141400016233081}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 672690.5909999914, "args": {"delay_ms": 0.10918099962509575}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 677762.7350002149, "args": {"delay_ms": 0.0695650002126057}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 682857.8660001768, "args": {"delay_ms": 0.09457399994062132}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 687952.1880000539, "args": {"delay_ms": 0.09309800008850277}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 693024.0430001505, "args": {"delay_ms": 0.07136399983210129}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 698094.5940003949, "args": {"delay_ms": 0.06975700000111817}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 703199.9240002733, "args": {"delay_ms": 0.10504700014280377}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 708348.4570002838, "args": {"delay_ms": 0.14711100004205935}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 713435.3510000438, "args": {"delay_ms": 0.08663799973874109}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 718555.3210001672, "args": {"delay_ms": 0.11956299988014496}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 723675.9960001109, "args": {"delay_ms": 0.1195830001233843}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 728757.6500002615, "args": {"delay_ms": 0.08117600020341331}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 733871.5890000458, "args": {"delay_ms": 0.11381199976312917}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 738946.758000111, "args": {"delay_ms": 0.07257399976879231}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 744017.924000218, "args": {"delay_ms": 0.07076800022332452}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 749126.1820000545, "args": {"delay_ms": 0.10791799979415362}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 754251.8889999883, "args": {"delay_ms": 0.12535500001831668}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 759500.485999979, "args": {"delay_ms": 0.24748699990595913}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 764651.805000085, "args": {"delay_ms": 0.14947000010579348}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 769767.5870003877, "args": {"delay_ms": 0.11500100037665095}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 774891.5720003424, "args": {"delay_ms": 0.12353200019788335}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 779976.9180001022, "args": {"delay_ms": 0.07668000000194286}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 785085.6430000021, "args": {"delay_ms": 0.10828699998455693}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 790205.4510000198, "args": {"delay_ms": 0.11916699997527747}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 795297.070000288, "args": {"delay_ms": 0.09127000032094645}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 800401.5620003884, "args": {"delay_ms": 0.10403700036476937}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 805495.5980001069, "args": {"delay_ms": 0.09368899975015654}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 810692.1070002499, "args": {"delay_ms": 0.19594300021708466}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 815766.1560003362, "args": {"delay_ms": 0.07322900011786249}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 820871.401000204, "args": {"delay_ms": 0.10493799993128039}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 825937.6380001414, "args": {"delay_ms": 0.06587900008526038}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 831007.3640000155, "args": {"delay_ms": 0.06960999973671267}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 836204.7450000318, "args": {"delay_ms": 0.19718299983651366}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 842433.259000245, "args": {"delay_ms": 1.2277580000227317}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 847549.0550003997, "args": {"delay_ms": 0.11445400024967955}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 852630.2479999686, "args": {"delay_ms": 0.0800999997591133}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 857724.2580004167, "args": {"delay_ms": 0.09326900009909866}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 862933.0100002335, "args": {"delay_ms": 0.20826699994358921}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 868037.8090002704, "args": {"delay_ms": 0.10331900022720208}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 873126.1460002315, "args": {"delay_ms": 0.08625100019344234}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 878259.5830002719, "args": {"delay_ms": 0.13267999986055645}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 884370.945000228, "args": {"delay_ms": 1.1072510002304625}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 889487.186000224, "args": {"delay_ms": 0.11582899980567152}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 894598.9590001772, "args": {"delay_ms": 0.11120200008008385}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 899716.3830003956, "args": {"delay_ms": 0.11674000017592323}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 904833.5480001697, "args": {"delay_ms": 0.11656700018647814}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 910011.6000004164, "args": {"delay_ms": 0.17785000010917418}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 915097.2310003453, "args": {"delay_ms": 0.08518800006640947}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 920161.4260000497, "args": {"delay_ms": 0.06401599977834838}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 925245.3230001265, "args": {"delay_ms": 0.08373599996048131}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 930359.0350000376, "args": {"delay_ms": 0.11354099990057864}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 935468.0440001176, "args": {"delay_ms": 0.1088019999951938}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 940699.8990002648, "args": {"delay_ms": 0.23074000011547458}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 945846.0509999895, "args": {"delay_ms": 0.14483899996776006}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 950951.3220000372, "args": {"delay_ms": 0.10433599993120868}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 956022.6450003029, "args": {"delay_ms": 0.07100400000126672}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 961216.4750001284, "args": {"delay_ms": 0.19345099974088942}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 982542.7970004057, "args": {"delay_ms": 16.325855000213778}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 987696.4660002158, "args": {"delay_ms": 0.15313699997932406}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 992800.5420001682, "args": {"delay_ms": 0.10256500001560187}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 997886.9740002665, "args": {"delay_ms": 0.08589800028857997}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1009755.8690004006, "args": {"delay_ms": 6.868395000419696}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1015845.7360003013, "args": {"delay_ms": 1.0888840002917277}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1020957.0730003179, "args": {"delay_ms": 0.11007300019628008}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1026176.9670000831, "args": {"delay_ms": 0.21840400006112748}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1031309.2139999754, "args": {"delay_ms": 0.1300629997967916}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1036425.0020002145, "args": {"delay_ms": 0.11520100008056022}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1041494.4809999724, "args": {"delay_ms": 0.06902399956743455}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1046636.7470003206, "args": {"delay_ms": 0.14180000027408812}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1051753.3430002003, "args": {"delay_ms": 0.1146259997949527}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1056877.20800006, "args": {"delay_ms": 0.12351499992291781}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1062055.6420003595, "args": {"delay_ms": 0.17793000017263683}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1067182.1660002933, "args": {"delay_ms": 0.12581300017700403}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1072250.243000326, "args": {"delay_ms": 0.06649099997957808}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1077356.4290002468, "args": {"delay_ms": 0.10587000007944869}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1082454.5250002302, "args": {"delay_ms": 0.09686600025815995}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1087574.0690003112, "args": {"delay_ms": 0.11921800034542673}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1121482.4680000674, "args": {"delay_ms": 28.90775299976667}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1126876.879000065, "args": {"delay_ms": 0.3938890000608807}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1131948.5640001404, "args": {"delay_ms": 0.07092299994837947}}, {"name": "event_loop_delay_ms", "ph": "C", "pid": 1, "tid": 2, "ts": 1137058.5399999982, "args": {"delay_ms": 0.10952099966743833}}]} diff --git a/docs/performance/diagnostics/diagnostics.zip b/docs/performance/diagnostics/diagnostics.zip new file mode 100644 index 00000000..5f207899 Binary files /dev/null and b/docs/performance/diagnostics/diagnostics.zip differ diff --git a/docs/performance/diagnostics/manifest.json b/docs/performance/diagnostics/manifest.json new file mode 100644 index 00000000..79101db9 --- /dev/null +++ b/docs/performance/diagnostics/manifest.json @@ -0,0 +1,22 @@ +[ + { + "file": "diagnostics/cells.png", + "sha256": "7cee4b06777186f183a06aff612baec9f00c32110bffe7c818e0538d29791b14", + "bytes": 113719 + }, + { + "file": "diagnostics/completion-baseline.trace.json", + "sha256": "cba1f1c8cca7ea912dca7fcbfdf00db56dba67a0fc44abe26ce21084a1950ba7", + "bytes": 25919 + }, + { + "file": "diagnostics/completion-candidate.trace.json", + "sha256": "42d84e47b6d26ddd92e55b251d672213f1c33bbf50926ff3dc2e63183492ab82", + "bytes": 25658 + }, + { + "file": "diagnostics/diagnostics.zip", + "sha256": "92516e352e4b2d2d57a5b47ed052d85032fcac0cabded76aa412019c9df4c438", + "bytes": 192111 + } +] diff --git a/docs/performance/figures/completion.svg b/docs/performance/figures/completion.svg new file mode 100644 index 00000000..abb5935f --- /dev/null +++ b/docs/performance/figures/completion.svg @@ -0,0 +1,930 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 5000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stored routines + + + + + + + + + + + + + + + + + + + + 1 + 0 + + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Completion function (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Algorithm scaling; n = 9 per size + + + + + + + + + + Baseline + + + + + + + + + Implemented changes + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 500 + + + + + + + + + + + + + 750 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1250 + + + + + + + + + + + + + 1500 + + + + + + + + + + + + + 1750 + + + + App completion + dropdown refresh (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1,841.2 ms + + + 34.6 ms + + + Actual PTY app; 5,000 routines; n = 9 + + + + + + + + + + + + diff --git a/docs/performance/figures/connection-reuse.svg b/docs/performance/figures/connection-reuse.svg new file mode 100644 index 00000000..d84808ba --- /dev/null +++ b/docs/performance/figures/connection-reuse.svg @@ -0,0 +1,499 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 1 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + 3 + + + + + + + + + + + + + 4 + + + + + + + + + + + + + 5 + + + + + + + + + + + + + 6 + + + + + + + + + + + + + 7 + + + + + + + + + + + + + 8 + + + + SELECT 1 operation (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loopback relay, no added delay + + + + + + + Fresh connection + query + + + + + + Reused connection + query + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + SELECT 1 operation (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + diff --git a/docs/performance/figures/idle.svg b/docs/performance/figures/idle.svg new file mode 100644 index 00000000..e2cc78ed --- /dev/null +++ b/docs/performance/figures/idle.svg @@ -0,0 +1,448 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + Process CPU over 5 seconds (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 21.1 ms + + + 5.9 ms + + + Explorer focus + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + Process CPU over 5 seconds (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 39.9 ms + + + 23.7 ms + + + Editor focus; cursor blinking retained + + + + + + + + + + + + diff --git a/docs/performance/figures/ipc.svg b/docs/performance/figures/ipc.svg new file mode 100644 index 00000000..9facdd81 --- /dev/null +++ b/docs/performance/figures/ipc.svg @@ -0,0 +1,514 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + Serialization + read-back (ms) + + + + + + + + + + + + + + Pickle: Python → Python + + + + + + + + + + Arrow: Python → Python + + + + + + + + + + Arrow: prepared → prepared + + + + + + + + + + Arrow LZ4: prepared + + + + + + + + + + Arrow Zstd: prepared + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50,000 rows; repeated 256-character text + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + Serialization + read-back (ms) + + + + + + + + + + + Pickle: Python → Python + + + + + + + + + + Arrow: Python → Python + + + + + + + + + + Arrow: prepared → prepared + + + + + + + + + + Arrow LZ4: prepared + + + + + + + + + + Arrow Zstd: prepared + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50,000 rows; varied 256-character text + + + + + + + + + + + + diff --git a/docs/performance/figures/local-workers.svg b/docs/performance/figures/local-workers.svg new file mode 100644 index 00000000..eeda9f08 --- /dev/null +++ b/docs/performance/figures/local-workers.svg @@ -0,0 +1,988 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT 1 operation (ms, log scale) + + + + + + + + + + + + + + Reuse + + + + + + + + + + Connect / query / close + + + + + + + + + + Cancellable query + + + + + + + + + + Warm worker + + + + + + + + + + Cold worker / shutdown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sqlite + + + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT 1 operation (ms, log scale) + + + + + + + + + + + Reuse + + + + + + + + + + Connect / query / close + + + + + + + + + + Cancellable query + + + + + + + + + + Warm worker + + + + + + + + + + Cold worker / shutdown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + duckdb + + + + + + + + + + + + diff --git a/docs/performance/figures/long-cells.svg b/docs/performance/figures/long-cells.svg new file mode 100644 index 00000000..45a16c19 --- /dev/null +++ b/docs/performance/figures/long-cells.svg @@ -0,0 +1,436 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 100 + + + + Milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumed CPU + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 300 + + + + + + + + + + + + + 350 + + + + Milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full result availability + + + + + + + + + + + + diff --git a/docs/performance/figures/network-limits.svg b/docs/performance/figures/network-limits.svg new file mode 100644 index 00000000..712d06d8 --- /dev/null +++ b/docs/performance/figures/network-limits.svg @@ -0,0 +1,558 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + 4 + + + + + + + + + + + + + 6 + + + + + + + + + + + + + 8 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 12 + + + + + + + + + + + + + 14 + + + + Received protocol payload (MB, decimal) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Python row cap is not a network cap + + + + + + + Buffered cap: 1,000 + + + + + + Explicit LIMIT 1,001 + + + + + + Streaming + cleanup + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + Operation wall time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + diff --git a/docs/performance/figures/network-metadata.svg b/docs/performance/figures/network-metadata.svg new file mode 100644 index 00000000..d52d7656 --- /dev/null +++ b/docs/performance/figures/network-metadata.svg @@ -0,0 +1,558 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 100 + + + + 20-table metadata time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loopback relay, no added delay + + + + + + + Two queries / table + + + + + + One query / table + + + + + + One batch / 20 tables + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 500 + + + + + + + + + + + + + 750 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1250 + + + + + + + + + + + + + 1500 + + + + + + + + + + + + + 1750 + + + + 20-table metadata time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + diff --git a/docs/performance/figures/render-resources.svg b/docs/performance/figures/render-resources.svg new file mode 100644 index 00000000..ebc01e70 --- /dev/null +++ b/docs/performance/figures/render-resources.svg @@ -0,0 +1,575 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + Terminal payload (kB, decimal) + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented changes + + + + + + + + + + Bulk, UI thread + + + + + + + + + + Preview + thread + + + + + + + + + + 500 rows / timer + + + + + + + + + + Sampled row backend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Result-loading output volume + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + Process high-water RSS (MiB) + + + + + + + + + + + Baseline + + + + + + + + + + Implemented changes + + + + + + + + + + Bulk, UI thread + + + + + + + + + + Preview + thread + + + + + + + + + + 500 rows / timer + + + + + + + + + + Sampled row backend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Memory by this point in the fixed sequence + + + + + + + + + + + + diff --git a/docs/performance/figures/render-tradeoffs.svg b/docs/performance/figures/render-tradeoffs.svg new file mode 100644 index 00000000..c157d941 --- /dev/null +++ b/docs/performance/figures/render-tradeoffs.svg @@ -0,0 +1,618 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Time until all 50,000 rows are available (ms) + + + + + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 70 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 90 + + + + Median of per-trial maximum loop lateness (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16.7 ms excess-delay reference + + + Rendering trade-offs; 50,000 × 6 cells; n = 5 + + + + + + + + + Baseline (306 CPU ms) + + + + + + + + Implemented changes (312 CPU ms) + + + + + + + + Bulk, UI thread (141 CPU ms) + + + + + + + + Preview + thread (204 CPU ms) + + + + + + + + 500 rows / timer (418 CPU ms) + + + + + + + + Sampled row backend (62 CPU ms) + + + + + + + + + + diff --git a/docs/performance/figures/startup.svg b/docs/performance/figures/startup.svg new file mode 100644 index 00000000..690f3a58 --- /dev/null +++ b/docs/performance/figures/startup.svg @@ -0,0 +1,545 @@ + + + + + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + baseline + + + + + + + + + + Default + implemented + + + + + + + + + + Disabled + baseline + + + + + + + + + + Disabled + implemented + + + + + + + + + + Empty .pyc + implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 400 + + + + + + + + + + + + + 600 + + + + + + + + + + + + + 800 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1200 + + + + Launch to observed first refresh (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cold processes; warm filesystem cache + + + + + + + + + + + + + + + Default + baseline + + + + + + + + + + Default + implemented + + + + + + + + + + Disabled + baseline + + + + + + + + + + Disabled + implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 300 + + + + + + + + + + + + + 400 + + + + + + + + + + + + + 500 + + + + Launch-and-exit process CPU (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Respecting the disabled-worker setting + + + + + + + + + + + + diff --git a/docs/performance/measurements.csv b/docs/performance/measurements.csv new file mode 100644 index 00000000..47426da9 --- /dev/null +++ b/docs/performance/measurements.csv @@ -0,0 +1,1350 @@ +actions,boundary,bytes,cli_first_refresh_ms,client_cpu_ms,columns,columns_returned,cpu_ms,digest,first_fetch_ms,first_fetch_rx_bytes,first_result_refresh_ms,frames,image,image_id,iteration,loop_delays_over_16_7_ms,loop_delays_over_50_ms,max_loop_delay_ms,maxrss_kib,objects,one_core_cpu_percent,one_way_delay_ms,p95_loop_delay_ms,parent_cpu_ms,parent_ready_ms,pattern,process_cpu_ms,provider,pty_bytes,routines,rows,rows_returned,rx_bytes,scenario,source_sha,suggestions,suite,tables,terminal_bytes,trial,truncated,tx_bytes,variant,wall_ms,watchdog_events,worker_reported_ms +,,,344.1,,,,,,,,,,,,,,,,,,,,,,413.6363240004357,,547.789,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,0,,,baseline,,, +,,,350.56,,,,,,,,,,,,,,,,,,,,,,405.26787800081365,,562.2320000000001,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,0,,,candidate,,, +,,,391.1,,,,,,,,,,,,,,,,,,,,,,443.7695269998585,,591.362,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,1,,,baseline,,, +,,,379.86,,,,,,,,,,,,,,,,,,,,,,445.1773909995609,,570.543,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,1,,,candidate,,, +,,,356.2,,,,,,,,,,,,,,,,,,,,,,409.41798299991206,,547.732,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,2,,,baseline,,, +,,,335.66,,,,,,,,,,,,,,,,,,,,,,386.1466969992762,,534.308,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,2,,,candidate,,, +,,,352.67,,,,,,,,,,,,,,,,,,,,,,416.9194440000865,,558.0959999999999,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,3,,,baseline,,, +,,,337.68,,,,,,,,,,,,,,,,,,,,,,390.97375799974543,,517.786,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,3,,,candidate,,, +,,,355.1,,,,,,,,,,,,,,,,,,,,,,406.5649200001644,,561.765,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,4,,,baseline,,, +,,,335.95,,,,,,,,,,,,,,,,,,,,,,387.21929300027114,,518.6569999999999,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,4,,,candidate,,, +,,,377.44,,,,,,,,,,,,,,,,,,,,,,430.5364020001434,,563.6759999999999,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,5,,,baseline,,, +,,,337.76,,,,,,,,,,,,,,,,,,,,,,400.2515130005122,,537.64,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,5,,,candidate,,, +,,,356.38,,,,,,,,,,,,,,,,,,,,,,424.5236329998079,,549.5409999999999,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,6,,,baseline,,, +,,,339.18,,,,,,,,,,,,,,,,,,,,,,389.47029399969324,,528.271,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,6,,,candidate,,, +,,,333.32,,,,,,,,,,,,,,,,,,,,,,394.9382609998793,,521.5849999999999,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,7,,,baseline,,, +,,,346.93,,,,,,,,,,,,,,,,,,,,,,402.3940360002598,,537.525,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,7,,,candidate,,, +,,,338.4,,,,,,,,,,,,,,,,,,,,,,393.3660250004323,,520.441,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,8,,,baseline,,, +,,,343.72,,,,,,,,,,,,,,,,,,,,,,394.8889469993446,,534.991,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,8,,,candidate,,, +,,,346.83,,,,,,,,,,,,,,,,,,,,,,409.01268899960996,,547.391,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,9,,,baseline,,, +,,,335.38,,,,,,,,,,,,,,,,,,,,,,396.59709599982307,,523.5799999999999,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,9,,,candidate,,, +,,,354.72,,,,,,,,,,,,,,,,,,,,,,412.6388370004861,,543.848,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,10,,,baseline,,, +,,,434.86,,,,,,,,,,,,,,,,,,,,,,491.4593840003363,,639.3389999999999,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,10,,,candidate,,, +,,,325.45,,,,,,,,,,,,,,,,,,,,,,385.28753600076016,,513.728,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,11,,,baseline,,, +,,,365.75,,,,,,,,,,,,,,,,,,,,,,418.95310600011726,,543.361,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,11,,,candidate,,, +,,,325.56,,,,,,,,,,,,,,,,,,,,,,385.59741800054326,,504.818,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,12,,,baseline,,, +,,,352.87,,,,,,,,,,,,,,,,,,,,,,415.2825129995108,,546.428,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,12,,,candidate,,, +,,,329.69,,,,,,,,,,,,,,,,,,,,,,389.25143999949796,,523.5999999999999,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,13,,,baseline,,, +,,,348.43,,,,,,,,,,,,,,,,,,,,,,414.17253199961124,,564.158,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,13,,,candidate,,, +,,,337.74,,,,,,,,,,,,,,,,,,,,,,389.59209699987696,,515.2,,75411,,,,,default,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,14,,,baseline,,, +,,,343.68,,,,,,,,,,,,,,,,,,,,,,409.6101160002945,,537.115,,75411,,,,,default,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,14,,,candidate,,, +,,,366.41,,,,,,,,,,,,,,,,,,,,,,424.0383350006596,,546.2009999999999,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,0,,,baseline,,, +,,,338.93,,,,,,,,,,,,,,,,,,,,,,404.46168099970237,,471.64199999999994,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,0,,,candidate,,, +,,,356.12,,,,,,,,,,,,,,,,,,,,,,423.00395100028254,,560.537,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,1,,,baseline,,, +,,,353.36,,,,,,,,,,,,,,,,,,,,,,414.7455840002294,,475.763,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,1,,,candidate,,, +,,,385.92,,,,,,,,,,,,,,,,,,,,,,444.01222499982396,,560.489,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,2,,,baseline,,, +,,,339.82,,,,,,,,,,,,,,,,,,,,,,389.6670069998436,,445.276,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,2,,,candidate,,, +,,,356.47,,,,,,,,,,,,,,,,,,,,,,410.43219699986366,,544.952,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,3,,,baseline,,, +,,,323.98,,,,,,,,,,,,,,,,,,,,,,386.1407149997831,,454.435,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,3,,,candidate,,, +,,,344.88,,,,,,,,,,,,,,,,,,,,,,410.6932400000005,,541.8,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,4,,,baseline,,, +,,,338.98,,,,,,,,,,,,,,,,,,,,,,393.0072849998396,,444.392,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,4,,,candidate,,, +,,,353.76,,,,,,,,,,,,,,,,,,,,,,414.3659439996554,,536.54,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,5,,,baseline,,, +,,,343.13,,,,,,,,,,,,,,,,,,,,,,404.8655629994755,,456.316,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,5,,,candidate,,, +,,,365.96,,,,,,,,,,,,,,,,,,,,,,422.2783880004499,,560.134,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,6,,,baseline,,, +,,,324.55,,,,,,,,,,,,,,,,,,,,,,373.4640889997536,,426.971,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,6,,,candidate,,, +,,,342.82,,,,,,,,,,,,,,,,,,,,,,391.9923280000148,,533.449,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,7,,,baseline,,, +,,,332.32,,,,,,,,,,,,,,,,,,,,,,388.95810499980144,,438.138,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,7,,,candidate,,, +,,,344.92,,,,,,,,,,,,,,,,,,,,,,400.4836379999688,,533.4259999999999,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,8,,,baseline,,, +,,,327.35,,,,,,,,,,,,,,,,,,,,,,391.1620450007831,,452.47299999999996,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,8,,,candidate,,, +,,,343.18,,,,,,,,,,,,,,,,,,,,,,395.12102200023946,,536.1329999999999,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,9,,,baseline,,, +,,,323.97,,,,,,,,,,,,,,,,,,,,,,390.3571880000527,,455.9069999999999,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,9,,,candidate,,, +,,,349.59,,,,,,,,,,,,,,,,,,,,,,412.2120240008371,,570.6949999999999,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,10,,,baseline,,, +,,,326.55,,,,,,,,,,,,,,,,,,,,,,376.2278080002943,,437.699,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,10,,,candidate,,, +,,,361.35,,,,,,,,,,,,,,,,,,,,,,430.61923000004754,,563.213,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,11,,,baseline,,, +,,,375.86,,,,,,,,,,,,,,,,,,,,,,439.6697209995182,,526.1129999999999,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,11,,,candidate,,, +,,,325.96,,,,,,,,,,,,,,,,,,,,,,372.81932399946527,,495.229,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,12,,,baseline,,, +,,,343.05,,,,,,,,,,,,,,,,,,,,,,406.8342959999427,,455.75499999999994,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,12,,,candidate,,, +,,,330.95,,,,,,,,,,,,,,,,,,,,,,391.9395419998182,,524.16,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,13,,,baseline,,, +,,,347.12,,,,,,,,,,,,,,,,,,,,,,415.58888100007607,,465.052,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,13,,,candidate,,, +,,,339.2,,,,,,,,,,,,,,,,,,,,,,404.3450990002384,,537.374,,75411,,,,,disabled,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,startup,,,14,,,baseline,,, +,,,342.68,,,,,,,,,,,,,,,,,,,,,,398.2162400006928,,450.777,,75411,,,,,disabled,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,14,,,candidate,,, +,,,1093.99,,,,,,,,,,,,,,,,,,,,,,1385.2823350007384,,1332.809,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,0,,,candidate,,, +,,,996.84,,,,,,,,,,,,,,,,,,,,,,1281.663148000007,,1332.268,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,1,,,candidate,,, +,,,896.8,,,,,,,,,,,,,,,,,,,,,,1149.404499999946,,1226.299,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,2,,,candidate,,, +,,,899.14,,,,,,,,,,,,,,,,,,,,,,1165.9069940005793,,1258.883,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,3,,,candidate,,, +,,,918.36,,,,,,,,,,,,,,,,,,,,,,1174.788532999628,,1232.276,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,4,,,candidate,,, +,,,942.85,,,,,,,,,,,,,,,,,,,,,,1193.5084649994678,,1243.3750000000002,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,5,,,candidate,,, +,,,941.33,,,,,,,,,,,,,,,,,,,,,,1202.5737359999766,,1253.654,,75411,,,,,no-pyc,0640c96464dcb50434f97b14d097418b51b110ba,,startup,,,6,,,candidate,,, +,,,,,,,95.30399,,,,,1,,,,1,1,91.87240700077382,116360,,99.49893369863119,,78.20384570070016,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,0,,,baseline,95.7839310003692,0, +,,,,,,,1817.1032670000002,,,,,1,,,,1,1,1822.8752470005202,120328,,99.56708112607332,,1549.5218372504671,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,20541,0,,,baseline,1825.0040539996917,0, +,,,,,,,31.893475000000006,,,,,1,,,,1,0,30.007203000532172,116196,,99.15267431360486,,25.68158460032463,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,0,,,candidate,32.16602600059559,0, +,,,,,,,50.025076999999975,,,,,1,,,,1,0,47.73786799989466,121828,,98.22694211845798,,40.67588074992271,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,0,,,candidate,50.92806099946756,0, +,,,,,,,97.21465699999993,,,,,2,,,,1,1,102.75871599980746,111304,,90.05905695725693,,87.49242789978776,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,23742,1,,,baseline,107.94545299995661,0, +,,,,,,,1828.097953,,,,,1,,,,1,1,1862.5262670003576,114760,,97.87360303285617,,1583.2834588502185,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,1,,,baseline,1867.8151169997363,0, +,,,,,,,22.016956000000032,,,,,1,,,,1,0,20.227998999980628,110340,,98.67392060480937,,17.300061399891995,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,1,,,candidate,22.312842000246746,0, +,,,,,,,53.220814000000004,,,,,2,,,,1,1,51.30804599968542,116100,,99.32988070561333,,44.01361979982538,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,1,,,candidate,53.579862999868055,0, +,,,,,,,97.70218899999999,,,,,1,,,,1,1,96.46123899994564,110136,,99.30036179177232,,77.34486319997812,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,2,,,baseline,98.39056700002402,0, +,,,,,,,1792.9216479999998,,,,,2,,,,1,1,1797.3980509997273,114104,,99.56928703584782,,1527.93305959969,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,20541,2,,,baseline,1800.677399000051,0, +,,,,,,,21.257672000000007,,,,,1,,,,1,0,18.77466899997671,116224,,97.57886116964123,,16.059635849951512,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,2,,,candidate,21.78511999954935,0, +,,,,,,,54.314408999999955,,,,,1,,,,1,1,54.0673449996757,122112,,98.33436270429495,,46.054649949764986,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,2,,,candidate,55.23441399964213,0, +,,,,,,,88.82693499999999,,,,,2,,,,1,1,87.13355700012471,117400,,98.76908656400133,,74.15898270007344,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,23742,3,,,baseline,89.93394400022225,0, +,,,,,,,1831.017239,,,,,1,,,,1,1,1839.057934000375,120984,,99.44510539244105,,1563.3139259504053,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,3,,,baseline,1841.234147999785,0, +,,,,,,,33.89264399999997,,,,,1,,,,1,0,31.200335000103223,116368,,98.67874546976104,,26.605466000019067,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,3,,,candidate,34.3464480001785,0, +,,,,,,,33.76091399999998,,,,,1,,,,1,0,32.47997200025566,121872,,97.67885618238749,,27.70951285016962,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,3,,,candidate,34.56317499967554,0, +,,,,,,,92.071941,,,,,1,,,,1,1,92.43380500003695,116088,,97.49147039095305,,78.6552593500073,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,4,,,baseline,94.44102199995541,0, +,,,,,,,1877.8790869999998,,,,,1,,,,1,1,1908.885553,120184,,98.21249711341575,,1622.6434241499821,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,20541,4,,,baseline,1912.0571639996342,0, +,,,,,,,21.576221000000007,,,,,1,,,,1,0,18.558740000225953,116460,,99.73173105092991,,15.891197150149303,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,4,,,candidate,21.634258999256417,0, +,,,,,,,33.81949299999998,,,,,1,,,,1,0,30.86240699951304,122348,,99.48894217537644,,26.323016249552882,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,4,,,candidate,33.993218000432535,0, +,,,,,,,99.58225900000001,,,,,1,,,,1,1,96.43670500019653,116212,,99.05838772544449,,82.04323765014121,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,5,,,baseline,100.52885100049025,0, +,,,,,,,1832.920511,,,,,1,,,,1,1,1842.0005990002392,120180,,99.33234034150807,,1565.849571650205,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,20541,5,,,baseline,1845.2404370000295,0, +,,,,,,,33.234174,,,,,1,,,,1,0,30.08607599997049,116180,,98.32599348769628,,24.098138999870567,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,5,,,candidate,33.79998800028261,0, +,,,,,,,34.493291000000035,,,,,1,,,,1,0,31.535833999550963,121940,,99.61824064031292,,26.958856249548255,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,5,,,candidate,34.62547699928109,0, +,,,,,,,88.51610500000001,,,,,2,,,,1,1,86.81190799972683,117492,,99.0898379244638,,73.84754959982271,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,23742,6,,,baseline,89.32914500019251,0, +,,,,,,,1812.4937199999997,,,,,1,,,,1,1,1816.5222509998057,120948,,99.60363036219997,,1544.14975814986,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,6,,,baseline,1819.7064839996528,0, +,,,,,,,20.972880999999997,,,,,1,,,,1,0,18.948310000378115,116368,,99.74110347856939,,16.25003620039933,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,6,,,candidate,21.02732000003016,0, +,,,,,,,51.274142999999995,,,,,1,,,,1,1,52.863787000314915,122128,,91.62964115009375,,45.111912100282986,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,6,,,candidate,55.958031000045594,0, +,,,,,,,105.54071499999995,,,,,1,,,,1,1,119.61638799959474,116156,,87.0017826675815,,101.83128909963666,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,7,,,baseline,121.30868099939107,0, +,,,,,,,1859.3121850000002,,,,,1,,,,1,1,1890.4423859995586,120124,,98.1342223024213,,1607.0155891496318,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,20541,7,,,baseline,1894.6623729998464,0, +,,,,,,,20.730142999999977,,,,,1,,,,1,0,16.799951000502915,116448,,99.5786167536917,,14.373261350347088,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,7,,,candidate,20.817865999561036,0, +,,,,,,,32.67219399999999,,,,,1,,,,1,0,31.763542999324276,122336,,99.55431486957163,,27.04124674944068,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,7,,,candidate,32.818461000715615,0, +,,,,,,,96.66114600000003,,,,,2,,,,1,1,99.57713199957652,117228,,93.32599594652761,,84.77286429967532,,,,,,,1000,,,,autocomplete_1000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,23742,8,,,baseline,103.5736559997531,0, +,,,,,,,1770.50345,,,,,1,,,,1,1,1786.3314419993185,120684,,98.99109025340847,,1518.5258083494948,,,,,,,5000,,,,autocomplete_5000_routines,9db49c230c7cab6abe497d14b9f51e39ad30cb42,50,completion,,18297,8,,,baseline,1788.548288000129,0, +,,,,,,,20.667350000000027,,,,,1,,,,1,0,19.67578199957643,116104,,99.6962179805116,,16.818726299534312,,,,,,,1000,,,,autocomplete_1000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,18297,8,,,candidate,20.730324999931327,0, +,,,,,,,32.522361,,,,,1,,,,1,0,30.335186999873258,121864,,99.71872897255383,,25.868834699867865,,,,,,,5000,,,,autocomplete_5000_routines,0640c96464dcb50434f97b14d097418b51b110ba,50,completion,,20541,8,,,candidate,32.61409500009904,0, +,,,,,6,,20.377727999999983,,,,8.768450999923516,4,,,,0,0,8.09487100024853,123220,,54.236999422329795,,7.888434699925709,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,0,,,bulk,37.57163599948399,0, +,,,,,6,,36.98505000000002,,,,68.38561800032039,5,,,,1,0,22.567492999878596,134868,,35.23205547466254,,15.217140500335516,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55138,0,,,bulk,104.97556699920096,0, +30,,,,,,,337.38985099999996,,,,,60,,,,0,0,11.341952000402669,136148,,66.29146422732815,,10.33218940030565,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,911474,0,,,bulk,508.9491610006007,0, +,,,,,,,13.950955999999959,,,,,2,,,,0,0,12.70924099946569,140756,,99.57779055207861,,10.883473399571807,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,0,,,bulk,14.010107999638421,0, +,,,,,,,41.80543399999992,,,,,4,,,,1,0,17.2743320000518,142804,,71.95025186980845,,12.99521920020197,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52892,0,,,bulk,58.10324899994157,0, +,,,,,,,53.56708600000004,,,,,5,,,,1,0,26.916036999973585,145340,,80.08112957202104,,21.435627100090635,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,0,,,bulk,66.8910220001635,0, +,,,,,6,,124.8442299999999,,,,122.80180499965354,6,,,,1,1,87.7786450001804,192564,,98.74166147041012,,66.25548220010381,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,0,,,bulk,126.43521300014982,0, +,,,,,40,,106.202468,,,,99.83579399977316,6,,,,2,1,62.7868020002279,205236,,77.14162828076468,,37.7428578003855,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,0,,,bulk,137.6720589996694,0, +,,,,,3,,110.32852100000001,,,,106.42450199975428,6,,,,2,1,62.00924300002953,225952,,78.80030304950193,,37.439480199755025,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,0,,,bulk,140.0102749994403,0, +,,,,,6,,132.98276799999996,,,,100.31608900044375,5,,,,3,1,58.29740399996808,226848,,95.7556669244487,,50.79736319996299,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74352,0,,,bulk,138.87717800025712,0, +,,,,,6,,40.84752799999997,,,,20.515789000455698,4,,,,0,0,16.23507100077404,125388,,66.1294878834717,,16.04747940065863,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,48321,0,,,preview-thread,61.76900700029364,0, +,,,,,6,,64.11664699999997,,,,64.69693799954257,7,,,,1,0,29.97889899972506,137600,,78.22697917818073,,22.967520199854327,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,61554,0,,,preview-thread,81.96231999954762,0, +30,,,,,,,341.23351599999995,,,,,60,,,,0,0,10.988020999429862,139136,,65.84081426918391,,10.61600500008353,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,909707,0,,,preview-thread,518.2704979997652,0, +,,,,,,,14.246701000000028,,,,,2,,,,0,0,10.947294000397958,143744,,99.59694791829722,,9.389776800317117,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28924,0,,,preview-thread,14.304355000604119,0, +,,,,,,,41.95770700000012,,,,,4,,,,0,0,16.612866999930702,145536,,70.88923733569158,,13.294844200136136,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52778,0,,,preview-thread,59.18769700019766,0, +,,,,,,,52.04658000000006,,,,,4,,,,1,0,25.653494999569375,148232,,78.54708793820012,,20.62700394946659,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,50570,0,,,preview-thread,66.26162900010968,0, +,,,,,6,,171.78837300000004,,,,131.93222799964133,7,,,,3,1,80.32239299984212,200144,,98.0431376884291,,56.38001619965505,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97519,0,,,preview-thread,175.21713099995395,0, +,,,,,40,,168.48948899999994,,,,125.91098199936823,5,,,,2,1,74.47725299982267,207680,,98.99641688792843,,56.28401299993128,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,87393,0,,,preview-thread,170.19756299941946,0, +,,,,,3,,176.91921599999995,,,,128.17497799915145,5,,,,3,1,77.56613199955609,233232,,96.87198259287416,,56.52375639976525,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,84695,0,,,preview-thread,182.63197600026615,0, +,,,,,6,,126.47469300000003,,,,90.48660499956895,8,,,,2,0,44.108756000350695,233488,,92.83839539615745,,33.6489104002976,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,119966,0,,,preview-thread,136.2310200001957,0, +,,,,,6,,17.714948000000007,,,,5.904718000238063,4,,,,0,0,10.349926999988382,115780,,47.97979810236056,,7.8944932501326495,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,0,,,row-backend,36.92168100042181,0, +,,,,,6,,24.047280000000004,,,,38.79689000041253,5,,,,0,0,8.420304999272046,122180,,43.47953596271223,,7.168275999556498,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55138,0,,,row-backend,55.307122000158415,0, +30,,,,,,,358.358972,,,,,59,,,,1,0,20.30143700005283,125124,,66.04381679233784,,11.264829850160819,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,904210,0,,,row-backend,542.6079070002743,0, +,,,,,,,15.149236000000066,,,,,2,,,,0,0,11.85856199947011,129732,,99.72748338206554,,10.16228489958848,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,0,,,row-backend,15.190632999292575,0, +,,,,,,,60.39628899999994,,,,,4,,,,1,0,33.49353700024949,136676,,80.60317218065464,,25.24417490028098,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52892,0,,,row-backend,74.93041199995787,0, +,,,,,,,54.163664000000054,,,,,5,,,,1,0,26.577668000863923,140776,,79.14261267607122,,21.804544050310135,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,0,,,row-backend,68.43805399967096,0, +,,,,,6,,60.709416000000125,,,,60.91381500027637,6,,,,2,0,18.02468699963356,163304,,92.03928482460849,,17.62813619990993,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,0,,,row-backend,65.96033000005264,0, +,,,,,40,,89.29646400000001,,,,83.44695800042246,6,,,,2,0,34.18874600003619,180584,,75.77814721887492,,32.15754539975933,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,0,,,row-backend,117.83933399965463,0, +,,,,,3,,73.14011300000001,,,,74.4242819991996,6,,,,3,0,23.39259500069602,194024,,68.8539698982993,,22.108142050519746,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,0,,,row-backend,106.22497600070346,0, +,,,,,6,,63.15334000000017,,,,58.715301000120235,6,,,,1,0,20.06915600042703,199144,,69.41777875893655,,17.96616445028121,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,0,,,row-backend,90.97574299994449,0, +,,,,,6,,74.88927699999998,,,,27.61121500043373,8,,,,1,0,25.092332000094757,121968,,45.0623157249081,,10.457763799895465,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71643,0,,,baseline,166.1904760003381,0, +,,,,,6,,89.09012799999994,,,,58.20286299967847,8,,,,1,0,17.85358700009965,130036,,38.851462411819824,,11.275917500252033,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71586,0,,,baseline,229.30958699998882,0, +30,,,,,,,343.72934399999997,,,,,60,,,,0,0,11.944903999501546,132212,,64.43538329052816,,10.83012100036285,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,0,,,baseline,533.4481250001772,0, +,,,,,,,24.579482999999904,,,,,2,,,,0,0,10.177258000221626,136948,,98.9556218166965,,10.11630920031166,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,0,,,baseline,24.838895000357297,0, +,,,,,,,66.91288499999982,,,,,3,,,,2,0,27.318411999767704,138612,,92.1199775242046,,25.272061499772462,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,0,,,baseline,72.63667100050952,0, +,,,,,,,83.15926999999989,,,,,3,,,,2,0,43.43542700018588,144044,,94.41131107390973,,38.42331200018634,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46923,0,,,baseline,88.08189299998048,0, +,,,,,6,,381.9620300000002,,,,117.42528199920343,21,,,,4,0,45.459763000617386,178304,,25.596934636330847,,11.567013600251803,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,156567,0,,,baseline,1492.2178590004478,0, +,,,,,40,,181.66935900000004,,,,90.49160599988681,10,,,,4,0,38.01142799977242,204188,,37.889247064694466,,16.293060000061814,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,99466,0,,,baseline,479.4747139994797,0, +,,,,,3,,93.40466800000003,,,,87.62216400009493,6,,,,3,0,30.61059900039254,248160,,70.8396958837415,,27.431529600216884,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74784,0,,,baseline,131.85357000020304,0, +,,,,,6,,100.46807800000002,,,,78.08544299950881,5,,,,2,0,28.939912999812805,253664,,78.83773209761591,,22.446460399914926,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,79404,0,,,baseline,127.43654000041715,0, +,,,,,6,,28.622862000000026,,,,16.726511999877403,5,,,,0,0,15.432170999811204,121868,,55.767906814562714,,12.781892999664702,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54750,0,,,timer500,51.32497100021283,0, +,,,,,6,,68.189585,,,,39.92130099959468,7,,,,0,0,14.688317000145615,132048,,64.01254375618934,,10.794901250046676,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,67935,0,,,timer500,106.52534800010471,0, +30,,,,,,,341.23484800000006,,,,,60,,,,0,0,12.319642000074962,134096,,67.25693699538714,,11.24508040040382,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,0,,,timer500,507.3600779996923,0, +,,,,,,,22.966908000000007,,,,,2,,,,1,0,22.620728999863786,138704,,95.39973863569233,,19.34071214993309,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,0,,,timer500,24.074392999864358,0, +,,,,,,,44.318521,,,,,3,,,,2,0,23.172358000119857,140368,,69.65114878377813,,21.446345800104606,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,0,,,timer500,63.629274999584595,0, +,,,,,,,53.637175999999954,,,,,5,,,,1,0,25.0613079998584,144232,,76.28413662041542,,19.071213999923195,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,0,,,timer500,70.3123589992174,0, +,,,,,6,,344.5636790000002,,,,60.6571950002035,28,,,,1,0,17.875192000356037,184704,,78.04287832801681,,8.240198849734949,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,221200,0,,,timer500,441.5056010002445,0, +,,,,,40,,122.39907100000002,,,,62.59115099965129,8,,,,2,0,19.812820999613905,217528,,91.33730500409784,,19.6603504999257,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,92264,0,,,timer500,134.00775399986742,0, +,,,,,3,,103.11262500000007,,,,84.31755699984933,5,,,,4,0,29.565119999570015,260612,,77.05875253362275,,26.701826049857114,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,73424,0,,,timer500,133.8103999996747,0, +,,,,,6,,142.88542199999998,,,,106.51781499927893,7,,,,2,1,65.88849599949754,265220,,85.7203082594182,,34.001557149686036,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,86251,0,,,timer500,166.68794700035505,0, +,,,,,6,,48.152058,,,,17.679745000350522,8,,,,0,0,16.432648999507364,122224,,24.555593979879596,,6.8929053998726815,,,,,,,,1000,,,render_1000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,0,,,candidate,196.09404699986044,0, +,,,,,6,,67.64431599999998,,,,49.63120400043408,8,,,,0,0,11.535716000362298,129972,,37.61251228616748,,11.355855650044758,,,,,,,,10000,,,render_10000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,0,,,candidate,179.84524799976498,0, +30,,,,,,,348.939284,,,,,61,,,,0,0,12.682065000371948,132148,,68.61770075938028,,10.494543100248844,,,,,,,,,,,scroll_30,0640c96464dcb50434f97b14d097418b51b110ba,,render,,919312,0,,,candidate,508.5266340001908,0, +,,,,,,,13.985742000000023,,,,,2,,,,0,0,11.777241999989199,136756,,99.43948541189022,,10.090984750077036,,,,,,,,,,,filter_open_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,28980,0,,,candidate,14.064576000237139,0, +,,,,,,,44.09949000000002,,,,,5,,,,0,0,15.7722979994287,138548,,74.33573175873047,,14.608946649623245,,,,,,,,,,,filter_search_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,55699,0,,,candidate,59.32475400004478,0, +,,,,,,,52.89394999999997,,,,,5,,,,1,0,27.91005099981703,144124,,81.81998040520544,,21.282877650100986,,,,,,,,,,,filter_close_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,54189,0,,,candidate,64.64673999926163,0, +,,,,,6,,305.51812599999994,,,,58.01851300020644,21,,,,3,0,19.017915000513312,178188,,24.19451758182214,,10.215149799587373,,,,,,,,50000,,,render_50000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,153827,0,,,candidate,1262.757667999722,0, +,,,,,40,,146.17659000000006,,,,60.597667999900295,12,,,,2,0,21.34086899979593,204244,,30.46603504116315,,12.262858800131637,,,,,,,,5000,,,render_5000_40_wide,0640c96464dcb50434f97b14d097418b51b110ba,,render,,106621,0,,,candidate,479.8018179999417,0, +,,,,,3,,94.38714000000003,,,,61.772572999871045,7,,,,2,0,20.33771300022636,248128,,52.427284349856805,,16.45349060028819,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,render,,80745,0,,,candidate,180.03438699997787,0, +,,,,,6,,99.8917829999999,,,,65.11748399952921,7,,,,1,0,27.814647000122932,254400,,52.87910273167933,,14.609174999914101,,,,,,,,10000,,,render_10000_6_decimal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,81112,0,,,candidate,188.90597199970216,0, +,,,,,6,,22.690050000000017,,,,9.92237899936299,4,,,,0,0,8.421208000181649,123220,,58.05573338113325,,8.32066665008824,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,1,,,bulk,39.08322000006592,0, +,,,,,6,,55.154099999999985,,,,68.23944000007032,6,,,,1,0,20.094611999520566,134880,,65.03175276822304,,16.054475999790156,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58785,1,,,bulk,84.81103099984466,0, +30,,,,,,,376.48928699999993,,,,,60,,,,1,0,23.326460999778647,135904,,69.81533457632632,,14.303360350022555,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,912616,1,,,bulk,539.2644599996856,0, +,,,,,,,16.583096999999935,,,,,2,,,,1,0,18.47839300000487,140640,,79.69628123441238,,16.003439500100278,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,1,,,bulk,20.807867999792506,0, +,,,,,,,53.12022000000005,,,,,3,,,,2,0,23.56677700037835,142432,,67.11969408548354,,22.664645000322707,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49971,1,,,bulk,79.14252399950783,0, +,,,,,,,58.989067000000176,,,,,5,,,,1,0,28.087869999690156,147444,,84.99736718675776,,23.68914129994663,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,1,,,bulk,69.40105200010294,0, +,,,,,6,,148.82865999999996,,,,148.39117999963491,6,,,,2,1,102.15371099922777,191192,,96.38828928000746,,77.88643229952862,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,1,,,bulk,154.40533400033019,0, +,,,,,40,,122.3474149999999,,,,116.39644099977886,6,,,,2,1,74.67661699967721,204896,,81.17063801938544,,47.54111199974432,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,1,,,bulk,150.72865999991336,0, +,,,,,3,,120.39812500000014,,,,130.87646199983283,6,,,,4,0,35.5807030001597,226136,,69.89784491494979,,33.50222260025475,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,1,,,bulk,172.2486939997907,0, +,,,,,6,,92.28066400000002,,,,90.96328599935077,6,,,,2,0,49.51830299989524,227160,,70.606783506216,,34.48162250026144,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,1,,,bulk,130.69659800021327,0, +,,,,,6,,44.48709299999998,,,,33.959618999688246,5,,,,1,0,27.911025000430527,125368,,63.445173085177395,,17.97531029998934,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,51482,1,,,preview-thread,70.11895600044227,0, +,,,,,6,,55.36865899999999,,,,71.88388200029294,6,,,,1,0,23.190772000016295,137360,,62.73705169127226,,13.724431600094228,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,57907,1,,,preview-thread,88.25511800023378,0, +30,,,,,,,348.1826170000001,,,,,60,,,,0,0,12.791619000490753,139024,,68.88043076385993,,10.260848799880474,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,909707,1,,,preview-thread,505.48844300010387,0, +,,,,,,,14.601121999999966,,,,,2,,,,0,0,10.356785999756537,143632,,99.46220287401776,,8.891571749854842,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28924,1,,,preview-thread,14.68007099992974,0, +,,,,,,,43.939003000000085,,,,,4,,,,0,0,16.605223999358714,145680,,75.57498751636177,,14.631482299382693,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52778,1,,,preview-thread,58.13961000058043,0, +,,,,,,,79.193289,,,,,5,,,,1,1,50.845356999270734,150236,,78.33677196948553,,35.28401939976901,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,1,,,preview-thread,101.09337799985951,0, +,,,,,6,,203.5524470000001,,,,155.2450469998803,7,,,,3,1,94.78363200025342,201300,,89.23396496983763,,52.789340700310255,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97519,1,,,preview-thread,228.1109519999518,0, +,,,,,40,,176.54575800000006,,,,129.14012400051433,7,,,,2,1,79.53679500053113,207948,,87.83060666271801,,47.475166700423856,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97363,1,,,preview-thread,201.00710299993807,0, +,,,,,3,,156.57460899999998,,,,105.95215699959226,5,,,,5,0,47.299298999969324,238800,,96.79929211541503,,40.579673150086805,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,84695,1,,,preview-thread,161.75181200014777,0, +,,,,,6,,175.72852900000012,,,,125.83391799944366,7,,,,3,1,73.42609199997241,239056,,86.6911802543094,,45.04639499966281,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,102828,1,,,preview-thread,202.70635200085962,0, +,,,,,6,,29.270943999999965,,,,10.537309000028472,3,,,,0,0,16.270571999593813,115432,,61.29809171785851,,13.461714899740395,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,43624,1,,,row-backend,47.7518030002102,0, +,,,,,6,,25.498016999999983,,,,43.61113699997077,5,,,,0,0,8.007810000090101,121960,,41.84069702692524,,7.349991299697647,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55138,1,,,row-backend,60.94070799917972,0, +30,,,,,,,356.018822,,,,,61,,,,0,0,15.906024000396426,124776,,65.85639600736002,,11.789001299230215,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,919882,1,,,row-backend,540.5987020003522,0, +,,,,,,,16.123777999999977,,,,,2,,,,0,0,14.106710000414749,129512,,98.17262691947533,,12.080011850293879,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,1,,,row-backend,16.423904000475886,0, +,,,,,,,50.99682299999997,,,,,5,,,,1,0,23.612973999770475,136472,,85.73653176755634,,20.251635699896717,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55813,1,,,row-backend,59.480855999936466,0, +,,,,,,,76.53609300000008,,,,,5,,,,1,1,53.52203799986455,139996,,76.7218481031218,,39.239869399962096,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,1,,,row-backend,99.7578849992351,0, +,,,,,6,,62.19032400000013,,,,62.86975300008635,6,,,,2,0,20.00988799965853,163292,,89.56359555281252,,19.283724499673554,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,1,,,row-backend,69.43705600042449,0, +,,,,,40,,67.77957899999998,,,,62.571436000325775,6,,,,2,0,22.025817999856372,180700,,67.73139353190463,,19.930452999797122,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,1,,,row-backend,100.07114200016076,0, +,,,,,3,,102.82120700000009,,,,98.48956299993006,6,,,,3,0,38.965077999928326,194012,,82.73253404743032,,34.425493300177536,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,1,,,row-backend,124.28146699949139,0, +,,,,,6,,92.46530100000005,,,,86.92360700024437,6,,,,2,0,37.972048999217805,199516,,74.61714785475097,,32.71140404969628,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,1,,,row-backend,123.91964000016742,0, +,,,,,6,,65.58370399999997,,,,24.50896099981037,8,,,,1,0,19.511986000106845,122216,,33.54063733714762,,11.139028500219863,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71643,1,,,baseline,195.53505600015342,0, +,,,,,6,,73.33557400000007,,,,45.068948000334785,10,,,,0,0,11.746188999604781,130256,,20.599858522067308,,4.6625990001484725,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,81695,1,,,baseline,356.00037699987297,0, +30,,,,,,,389.098021,,,,,59,,,,0,0,14.671344000016687,132304,,74.32269295643984,,13.221839799934965,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,893560,1,,,baseline,523.5251920003066,0, +,,,,,,,15.06641799999997,,,,,2,,,,0,0,12.421016000298549,136912,,95.61823476643644,,10.652621150275076,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,1,,,baseline,15.756845999931102,0, +,,,,,,,46.64218599999992,,,,,5,,,,1,0,18.129080000217073,138704,,81.94535695576438,,16.695121700395244,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55699,1,,,baseline,56.918643999779306,0, +,,,,,,,56.615411000000115,,,,,5,,,,1,0,27.57430600024236,144284,,88.62660935738106,,22.595170299991864,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,1,,,baseline,63.880827000502904,0, +,,,,,6,,272.1815350000001,,,,55.179228999804764,19,,,,3,0,20.670091999927536,178280,,24.42473741328208,,11.974795700025389,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,143773,1,,,baseline,1114.368316000764,0, +,,,,,40,,171.56773600000008,,,,60.16165299934073,12,,,,2,0,20.16057400043792,204188,,33.953674378301216,,13.033428049693603,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,106621,1,,,baseline,505.2994679999756,0, +,,,,,3,,104.91770000000011,,,,100.32872200008569,6,,,,3,0,38.58271199998853,248004,,80.85558676796747,,35.0391509997462,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74784,1,,,baseline,129.75937000010163,0, +,,,,,6,,100.97511600000009,,,,70.22341300034896,6,,,,1,0,29.99985599955835,253568,,59.19210718709902,,16.387052350064547,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,80258,1,,,baseline,170.5888180003967,0, +,,,,,6,,44.45485900000001,,,,27.19712599991908,6,,,,1,0,22.420389000326395,122000,,75.44122352315918,,19.284393300149524,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58401,1,,,timer500,58.92648200006079,0, +,,,,,6,,89.65810099999993,,,,43.8933730001736,8,,,,0,0,15.026352999593653,132156,,74.9481028148219,,7.829161599347559,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77170,1,,,timer500,119.62691200005793,0, +30,,,,,,,343.09004300000004,,,,,60,,,,0,0,11.799037000055248,133948,,64.58033181843179,,10.883852200204272,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,1,,,timer500,531.2608859994725,0, +,,,,,,,20.340723999999977,,,,,2,,,,0,0,16.49648399972648,138556,,97.1225763096307,,14.129129399834705,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,1,,,timer500,20.943353000802745,0, +,,,,,,,47.4909859999999,,,,,5,,,,1,0,19.190723999709007,140152,,83.8805476075575,,17.528840099948862,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55699,1,,,timer500,56.617401000039536,0, +,,,,,,,77.612676,,,,,5,,,,1,0,44.970103000305244,144028,,96.00742382303136,,37.166142250152916,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,1,,,timer500,80.84028600023885,0, +,,,,,6,,434.1841820000001,,,,69.50815999971383,31,,,,2,0,28.63345300022047,184964,,80.40088750413011,,12.557363800278823,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,243296,1,,,timer500,540.0241159995858,0, +,,,,,40,,129.819817,,,,66.85373300024366,6,,,,2,0,21.902784000412794,217632,,92.37607547333604,,21.559074400165628,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,82322,1,,,timer500,140.53402500030643,0, +,,,,,3,,129.06393100000014,,,,112.6482390000092,5,,,,3,0,44.187595000148576,260572,,86.62401681281248,,39.76833400035501,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,73424,1,,,timer500,148.99324199996045,0, +,,,,,6,,122.460542,,,,73.64201299969864,7,,,,2,0,29.444021000126668,263004,,81.40031560099415,,23.157934249520622,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,91453,1,,,timer500,150.44234300057724,0, +,,,,,6,,62.42419500000002,,,,19.856402999721467,8,,,,1,0,17.476085000562307,122072,,31.985358084946228,,10.563172400106838,,,,,,,,1000,,,render_1000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,1,,,candidate,195.1649090005958,0, +,,,,,6,,59.34147500000003,,,,45.8620150002389,8,,,,0,0,13.416883000099913,130052,,33.170516021185556,,9.554039500126237,,,,,,,,10000,,,render_10000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,1,,,candidate,178.89825700058282,0, +30,,,,,,,368.307348,,,,,60,,,,1,0,17.062904999984312,132100,,66.57872918205663,,12.383803749680736,,,,,,,,,,,scroll_30,0640c96464dcb50434f97b14d097418b51b110ba,,render,,910953,1,,,candidate,553.1907149998005,0, +,,,,,,,14.943718999999911,,,,,2,,,,0,0,10.645343999494797,136836,,99.16953903809802,,9.157878749574587,,,,,,,,,,,filter_open_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,28980,1,,,candidate,15.06885999970109,0, +,,,,,,,71.82252999999994,,,,,5,,,,1,0,40.62834699936502,138372,,93.00293583446764,,33.77473874945281,,,,,,,,,,,filter_search_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,55699,1,,,candidate,77.22608899985062,0, +,,,,,,,79.3374309999999,,,,,3,,,,1,0,45.233855999977095,144192,,92.53344517604651,,37.7952009999899,,,,,,,,,,,filter_close_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,46923,1,,,candidate,85.7391950003148,0, +,,,,,6,,424.5300539999999,,,,85.57904100052838,25,,,,5,0,34.625896999496035,178144,,27.257197093499823,,11.752965000523544,,,,,,,,50000,,,render_50000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,173935,1,,,candidate,1557.497099000102,0, +,,,,,40,,158.50261600000005,,,,68.3170729998892,11,,,,2,0,22.751347000048554,204280,,32.79778876944076,,11.967705600018226,,,,,,,,5000,,,render_5000_40_wide,0640c96464dcb50434f97b14d097418b51b110ba,,render,,103053,1,,,candidate,483.2722629998898,0, +,,,,,3,,125.81989800000004,,,,95.36347499943076,7,,,,2,0,41.54807199949573,248232,,68.29147127527735,,31.42113339992645,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,render,,80745,1,,,candidate,184.23954799982312,0, +,,,,,6,,144.8482369999997,,,,99.09588000027725,9,,,,3,1,50.45849900045141,254632,,39.56502142175853,,17.437043399986567,,,,,,,,10000,,,render_10000_6_decimal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,87980,1,,,candidate,366.1017530002937,0, +,,,,,6,,39.178619000000026,,,,16.37215800019476,3,,,,1,0,19.573923000389186,123132,,59.00553938244608,,16.17706335025104,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,43624,2,,,bulk,66.39820499913185,0, +,,,,,6,,45.64850400000003,,,,43.923090000134835,5,,,,1,0,16.9309730000532,134720,,76.24927337397664,,15.01186280012916,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55138,2,,,bulk,59.867461000067124,0, +30,,,,,,,378.51585099999994,,,,,59,,,,0,0,16.007821000239346,135872,,68.20878185913473,,14.520059850083266,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,905352,2,,,bulk,554.937121999501,0, +,,,,,,,23.041397999999937,,,,,2,,,,1,0,18.87435899981938,140608,,98.95431306976259,,16.152421349825083,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,2,,,bulk,23.28488499915693,0, +,,,,,,,78.26290200000008,,,,,3,,,,2,0,34.18911199980357,142400,,98.16481868963365,,30.53744199984976,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49971,2,,,bulk,79.72601900019072,0, +,,,,,,,64.67209100000004,,,,,5,,,,1,0,30.124824999911652,146336,,86.9131319028474,,25.826016699938908,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,2,,,bulk,74.41003400072077,0, +,,,,,6,,141.79713500000003,,,,139.67088899971714,6,,,,2,1,93.78373900028237,192384,,82.83169540478524,,54.60050315047733,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,2,,,bulk,171.1870489998546,0, +,,,,,40,,139.07615499999991,,,,137.586021000061,6,,,,2,1,89.25795500010281,204936,,94.71856010612191,,68.57410610011351,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,2,,,bulk,146.8309430001682,0, +,,,,,3,,108.90964600000008,,,,122.90835799922206,6,,,,3,1,58.71233299978485,227056,,69.872470874215,,42.5828570001795,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,2,,,bulk,155.8691780001027,0, +,,,,,6,,129.62635999999983,,,,87.77808100057882,6,,,,3,0,47.03045199959888,227312,,78.08767756904479,,44.134719049789055,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,2,,,bulk,166.00104400004057,0, +,,,,,6,,35.60722900000002,,,,20.648708999942755,5,,,,1,0,18.60530599980848,125584,,68.3795735381666,,15.498399750067614,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,51482,2,,,preview-thread,52.07290299949818,0, +,,,,,6,,64.86400999999998,,,,74.4443699995827,7,,,,1,0,29.883377000369364,137676,,70.69319867086367,,20.805140499869594,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,61554,2,,,preview-thread,91.75424400018528,0, +30,,,,,,,348.60703700000005,,,,,59,,,,0,0,13.590872999993733,139212,,67.37805328301721,,11.821648300174273,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,902443,2,,,preview-thread,517.3895950001679,0, +,,,,,,,14.263898999999913,,,,,2,,,,0,0,12.982073999519342,143820,,99.67339681084091,,11.117038949550983,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28924,2,,,preview-thread,14.310638000097242,0, +,,,,,,,70.29917799999996,,,,,3,,,,1,0,33.48976900007983,145612,,85.91226578394945,,26.55855205004626,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,2,,,preview-thread,81.82670699989103,0, +,,,,,,,72.45422099999988,,,,,4,,,,1,0,44.28015600034996,149256,,94.33575625168591,,35.96870450007373,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,50570,2,,,preview-thread,76.80462200005422,0, +,,,,,6,,223.4920490000001,,,,174.43233900030464,7,,,,2,1,118.35756100037543,200292,,90.49150657627592,,60.7361114001105,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97519,2,,,preview-thread,246.97571899923787,0, +,,,,,40,,145.3672829999999,,,,99.82990600019548,7,,,,2,1,61.97565100057545,207788,,100.61217809671672,,43.88707700029043,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97363,2,,,preview-thread,144.48279099997308,0, +,,,,,3,,165.417591,,,,111.94049499954417,5,,,,4,1,51.827116000022215,237792,,99.26376084945306,,42.592820400132034,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,84695,2,,,preview-thread,166.6444929996942,0, +,,,,,6,,135.13588899999985,,,,94.95251200041821,5,,,,2,1,50.73838100008288,238048,,97.89199042545187,,37.96141260001603,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,95960,2,,,preview-thread,138.0459100000735,0, +,,,,,6,,26.357225999999955,,,,9.529230000225652,5,,,,0,0,13.189532999713263,116492,,60.45243362983703,,11.81434374972923,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,53212,2,,,row-backend,43.59994199967332,0, +,,,,,6,,39.79769500000002,,,,46.71602899998106,6,,,,0,0,13.650867999895125,122124,,60.809745463435874,,13.484923600044565,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58785,2,,,row-backend,65.44624500020291,0, +30,,,,,,,378.19064199999997,,,,,59,,,,1,0,26.455316000574385,124940,,64.33971864992314,,14.768835400100201,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,904210,2,,,row-backend,587.8027599992492,0, +,,,,,,,14.979410000000026,,,,,2,,,,0,0,13.786935000207448,129548,,99.42073525687812,,11.797047750287668,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,2,,,row-backend,15.066685999954643,0, +,,,,,,,44.692642000000006,,,,,4,,,,1,0,19.87787100017158,136548,,80.64349233504134,,17.32132590024775,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52892,2,,,row-backend,55.4200229998969,0, +,,,,,,,57.90601399999984,,,,,5,,,,1,0,29.97480199985148,140104,,84.78309173740476,,25.12184839981272,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,2,,,row-backend,68.29901200035238,0, +,,,,,6,,60.01767400000002,,,,56.28728099964064,6,,,,2,0,17.76045599955978,163400,,96.29062644851265,,17.614032899491576,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,2,,,row-backend,62.32971600002202,0, +,,,,,40,,66.71422199999988,,,,61.66671099981613,6,,,,2,0,21.81037100046524,180808,,98.79366515498397,,21.19490120023329,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,2,,,row-backend,67.52884599973186,0, +,,,,,3,,102.76810999999996,,,,99.60233900073945,6,,,,3,0,36.44864099998813,194120,,83.49427963473424,,34.220733299998756,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,2,,,row-backend,123.08401300015248,0, +,,,,,6,,73.07120300000003,,,,68.91258100040432,6,,,,2,0,24.135474000213435,199240,,68.78839682850312,,23.000500200141683,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,2,,,row-backend,106.2260589997095,0, +,,,,,6,,64.14497999999996,,,,27.00325200021325,8,,,,1,0,22.50196200031496,122320,,35.680355732631504,,7.9747814003621755,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71643,2,,,baseline,179.77673900077207,0, +,,,,,6,,76.98792500000002,,,,59.68234600004507,8,,,,1,0,19.026658000366297,130152,,33.06263613616553,,12.123122750081162,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71586,2,,,baseline,232.85476899945934,0, +30,,,,,,,358.497343,,,,,60,,,,0,0,14.1902630003824,132328,,67.58019651968424,,12.575377400044088,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,2,,,baseline,530.4769169997599,0, +,,,,,,,14.791770999999954,,,,,2,,,,0,0,11.703039000276474,136936,,98.63885344216388,,10.013617950125985,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,2,,,baseline,14.995886999713548,0, +,,,,,,,42.89288799999991,,,,,4,,,,1,0,17.89182799995615,138728,,72.3660408175905,,13.821210799978868,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52778,2,,,baseline,59.27212200003851,0, +,,,,,,,55.647538999999966,,,,,5,,,,1,0,27.284861000334786,144368,,81.96725124333766,,21.48785895025866,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,2,,,baseline,67.88996599971142,0, +,,,,,6,,266.61811700000015,,,,57.31265399936092,19,,,,1,0,17.518013999615505,178300,,23.803052332607052,,11.164943600369941,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,143773,2,,,baseline,1120.1005370003259,0, +,,,,,40,,150.92470000000003,,,,61.242136000146274,12,,,,3,0,20.12360200034891,204164,,30.43210640322399,,12.48775839978404,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,106621,2,,,baseline,495.93905200072186,0, +,,,,,3,,109.26839999999993,,,,105.87637200023892,6,,,,3,0,42.54123300062929,248056,,85.36532593716066,,38.25630690036632,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74784,2,,,baseline,128.00091700046323,0, +,,,,,6,,125.22443300000008,,,,98.60055899935105,5,,,,3,0,46.71663099918078,253688,,86.03188862887703,,38.13322794973826,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,79404,2,,,baseline,145.55583400033356,0, +,,,,,6,,36.01283599999999,,,,21.866438000870403,5,,,,1,0,20.59595100046863,122204,,63.7796416713394,,16.37274040060219,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54750,2,,,timer500,56.46446900027513,0, +,,,,,6,,107.95890800000002,,,,47.34169099992869,9,,,,0,0,13.393671000012544,132644,,77.59300108671223,,12.580422199898747,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,83599,2,,,timer500,139.13485299963213,0, +30,,,,,,,330.64784699999996,,,,,60,,,,0,0,10.575596999951811,134564,,64.27638231234656,,9.4081319003817,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,2,,,timer500,514.4157699996867,0, +,,,,,,,20.03887800000004,,,,,2,,,,0,0,15.741022999573032,139172,,99.34616745312772,,13.497929149680196,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,2,,,timer500,20.170761000372295,0, +,,,,,,,67.37396600000001,,,,,3,,,,2,0,25.462647000604193,140964,,79.30151775530945,,24.826310950284096,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,2,,,timer500,84.95923899954505,0, +,,,,,,,78.84756300000006,,,,,4,,,,2,0,35.13438899983157,143464,,76.82802541506027,,32.048903000140854,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,50570,2,,,timer500,102.62864699961938,0, +,,,,,6,,486.78744399999994,,,,71.86092699976143,34,,,,2,0,27.829594999384426,185752,,81.86956028293234,,11.980016599700317,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,262586,2,,,timer500,594.5890539996981,0, +,,,,,40,,167.573333,,,,95.6466180005009,8,,,,2,0,34.71851400001469,218340,,91.11508613503203,,33.61514924983567,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,95070,2,,,timer500,183.91392699959397,0, +,,,,,3,,129.98039400000016,,,,126.18422500054294,6,,,,3,1,65.33569599934708,260980,,81.2531442287071,,44.26549519973375,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77042,2,,,timer500,159.96967899991432,0, +,,,,,6,,109.81384800000038,,,,71.5878339997289,6,,,,2,0,27.828885000526498,260980,,78.64811457423245,,22.327559999775985,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,85418,2,,,timer500,139.62680300028296,0, +,,,,,6,,65.13492500000001,,,,20.613496999430936,8,,,,1,0,18.258133999661368,122044,,38.76390532848202,,12.072909999569667,,,,,,,,1000,,,render_1000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,2,,,candidate,168.02983199977461,0, +,,,,,6,,95.76393700000003,,,,41.9458050000685,11,,,,0,0,13.982544999744276,130080,,29.147268469642796,,9.615159100321751,,,,,,,,10000,,,render_10000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,85318,2,,,candidate,328.5520119998182,0, +30,,,,,,,387.81223199999994,,,,,60,,,,0,0,16.327821999875596,132256,,72.23728872302945,,13.056205600441896,,,,,,,,,,,scroll_30,0640c96464dcb50434f97b14d097418b51b110ba,,render,,910953,2,,,candidate,536.8587869998009,0, +,,,,,,,14.927015000000043,,,,,2,,,,0,0,13.65390000057232,136864,,99.73423828791265,,11.685677700525043,,,,,,,,,,,filter_open_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,28980,2,,,candidate,14.966791000006197,0, +,,,,,,,58.50749799999999,,,,,3,,,,2,0,19.56417000030342,138656,,83.7839108080037,,18.620893750057803,,,,,,,,,,,filter_search_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,49857,2,,,candidate,69.83142399985809,0, +,,,,,,,78.01002400000013,,,,,5,,,,1,0,48.52281100022083,143176,,86.30495361949055,,35.543990250125695,,,,,,,,,,,filter_close_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,54189,2,,,candidate,90.38881400010723,0, +,,,,,6,,338.3706420000001,,,,60.71966599938605,23,,,,2,0,19.861790000613837,178160,,24.232891798309172,,9.915275549856206,,,,,,,,50000,,,render_50000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,163881,2,,,candidate,1396.3279529998545,0, +,,,,,40,,152.3913400000001,,,,61.45940300029906,11,,,,2,0,21.586150999719393,204120,,31.599458760950405,,11.261258249869568,,,,,,,,5000,,,render_5000_40_wide,0640c96464dcb50434f97b14d097418b51b110ba,,render,,103053,2,,,candidate,482.2593359995153,0, +,,,,,3,,155.59704499999992,,,,92.96409499984293,9,,,,3,0,36.21500200017181,248236,,43.46211996212637,,17.117200599677727,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,render,,90267,2,,,candidate,358.00611000013305,0, +,,,,,6,,110.819738,,,,76.30404599967733,8,,,,2,0,29.666313000343507,254124,,58.12789324894232,,23.26103459974544,,,,,,,,10000,,,render_10000_6_decimal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,81945,2,,,candidate,190.6481240002904,0, +,,,,,6,,20.670587999999988,,,,8.825412999613036,4,,,,0,0,8.343286999770497,123064,,54.54260767373549,,8.118767299965837,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,3,,,bulk,37.89805599990359,0, +,,,,,6,,57.45101199999997,,,,59.30841000008513,6,,,,1,0,21.735671000096772,134588,,73.72108899475535,,18.314669399951523,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58785,3,,,bulk,77.93022699934227,0, +30,,,,,,,362.12113700000003,,,,,60,,,,0,0,13.938854999760222,135868,,69.85547949408225,,11.678435449875904,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,911474,3,,,bulk,518.3861589994194,0, +,,,,,,,13.805616000000075,,,,,2,,,,0,0,12.622400000618653,140604,,99.56028840317019,,10.80787985053575,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,3,,,bulk,13.86658899991744,0, +,,,,,,,45.36289900000001,,,,,5,,,,1,0,18.13183000023855,142396,,75.16595768406067,,15.900707050350317,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55813,3,,,bulk,60.350323999955435,0, +,,,,,,,54.654819999999994,,,,,5,,,,1,0,28.287064999967697,146236,,85.39908363077414,,23.510967500096726,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,3,,,bulk,63.99930499992479,0, +,,,,,6,,136.760789,,,,137.83452700045018,6,,,,2,1,94.69983199971466,192136,,93.7894031863404,,72.11433049989859,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,3,,,bulk,145.81688799989934,0, +,,,,,40,,105.64026199999988,,,,109.32956099986768,6,,,,2,1,65.2517319996332,204688,,91.44166560269802,,48.547136399856726,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,3,,,bulk,115.5274910006483,0, +,,,,,3,,95.53788699999987,,,,94.20710499944107,6,,,,3,0,44.876420999680704,226828,,76.21692963550242,,32.01862384991726,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,3,,,bulk,125.34995499936485,0, +,,,,,6,,81.53418900000008,,,,86.4819720000014,6,,,,2,0,39.41111699998146,227084,,89.27426021893994,,32.283277050028104,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,3,,,bulk,91.3300080001136,0, +,,,,,6,,35.309600999999965,,,,21.278930000335095,5,,,,1,0,16.875663999708195,125784,,64.65287677767459,,14.011527900011055,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,51482,3,,,preview-thread,54.61412200020277,0, +,,,,,6,,65.45180299999997,,,,74.89326699942467,7,,,,1,0,31.13103699990461,137544,,70.43739264356562,,21.82443699995929,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,61554,3,,,preview-thread,92.92195600028208,0, +30,,,,,,,349.6388620000001,,,,,60,,,,0,0,13.230389000564172,139208,,67.60936584357437,,11.68989779991534,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,909707,3,,,preview-thread,517.1456019998004,0, +,,,,,,,13.826674999999899,,,,,2,,,,0,0,9.531013000123492,143816,,99.90237848341964,,8.173426600133093,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28924,3,,,preview-thread,13.840185999470123,0, +,,,,,,,43.281835000000044,,,,,4,,,,1,0,17.657616999822494,145608,,71.39481609196243,,14.224477399802705,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52778,3,,,preview-thread,60.623217999818735,0, +,,,,,,,78.00415900000002,,,,,4,,,,1,0,47.63309600013599,149112,,94.7591680802779,,38.64562075011236,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,50570,3,,,preview-thread,82.31832399997074,0, +,,,,,6,,184.820475,,,,134.36070299940184,7,,,,3,1,88.5163329995703,200104,,87.53749231530881,,43.35144190046769,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97519,3,,,preview-thread,211.13293300004443,0, +,,,,,40,,214.58413499999995,,,,171.87055699923803,5,,,,2,1,111.28517999997712,207660,,96.65260351410872,,79.55985079999661,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,87393,3,,,preview-thread,222.015886999543,0, +,,,,,3,,143.88756800000002,,,,93.96042199932708,5,,,,4,0,32.207049999778974,237724,,98.93142695824903,,27.401121099701403,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,84695,3,,,preview-thread,145.4417190007007,0, +,,,,,6,,127.55776500000016,,,,85.0928820000263,7,,,,2,0,42.39492299995618,237980,,96.52566446058931,,30.98294595008153,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,102828,3,,,preview-thread,132.1490669997729,0, +,,,,,6,,27.98607999999997,,,,10.587626999949862,5,,,,0,0,15.53912500014121,116520,,48.759112361888285,,12.267569799878398,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,53212,3,,,row-backend,57.396615000470774,0, +,,,,,6,,25.51826099999999,,,,46.4882710002712,5,,,,0,0,8.595313999758217,122152,,39.06918040282536,,8.464379899824051,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55138,3,,,row-backend,65.31557800008159,0, +30,,,,,,,334.63411399999995,,,,,61,,,,0,0,10.839529000004402,125096,,66.05266831270676,,9.845592100482458,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,919882,3,,,row-backend,506.61710200074594,0, +,,,,,,,14.045868000000073,,,,,3,,,,0,0,9.772389999961886,129704,,99.60231738696915,,8.38876434997473,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,32808,3,,,row-backend,14.101948999268643,0, +,,,,,,,71.53743899999998,,,,,3,,,,2,0,31.30879499996809,136532,,83.13102761493583,,27.34667950005132,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49971,3,,,row-backend,86.0538369997812,0, +,,,,,,,76.41949600000008,,,,,5,,,,1,0,43.98957800014614,140080,,82.43499523006179,,33.61374400021303,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,3,,,row-backend,92.70273600031942,0, +,,,,,6,,63.550942,,,,61.103131999516336,6,,,,2,0,21.66302400029963,163248,,94.65785357223135,,20.630054400335208,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,3,,,row-backend,67.13752700034092,0, +,,,,,40,,69.27349599999988,,,,64.69189499966888,6,,,,2,0,21.683741999477206,180656,,71.16281098943726,,20.700430549522935,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,3,,,row-backend,97.34508100063977,0, +,,,,,3,,72.21561799999998,,,,76.46156699956919,6,,,,3,0,23.237018000254466,193840,,66.56592436751875,,21.07676540046668,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,3,,,row-backend,108.48736600019038,0, +,,,,,6,,89.66896700000015,,,,84.61069499935547,6,,,,2,0,34.55844600022829,199472,,83.389954434647,,30.95084144990323,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,3,,,row-backend,107.52969900022435,0, +,,,,,6,,72.46002499999999,,,,27.789409000433807,8,,,,1,0,24.20800300034898,122072,,36.7447453865942,,7.424852750154968,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71643,3,,,baseline,197.19833199997083,0, +,,,,,6,,68.75446300000004,,,,59.691125999961514,9,,,,0,0,16.28477099995507,129944,,42.458261976703085,,10.254259799803547,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75266,3,,,baseline,161.934237999958,0, +30,,,,,,,349.53107000000006,,,,,60,,,,0,0,12.97093700042751,132120,,69.29413062895587,,11.472563800016353,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,3,,,baseline,504.41655999929935,0, +,,,,,,,15.658791999999977,,,,,2,,,,0,0,6.752833000173268,136728,,88.40323702449592,,6.622066400195763,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,3,,,baseline,17.712917000608286,0, +,,,,,,,62.61636700000006,,,,,5,,,,2,0,27.399247999819636,138560,,81.27999272044289,,23.998278400058545,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55699,3,,,baseline,77.03786000001855,0, +,,,,,,,78.25040900000002,,,,,5,,,,1,0,45.54954099978204,144224,,96.74624363204344,,37.330921499797114,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,3,,,baseline,80.88211599988426,0, +,,,,,6,,305.78843899999987,,,,72.54750199990667,19,,,,4,0,22.145400999870617,178524,,23.447392956948566,,7.265161399955104,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,146513,3,,,baseline,1304.146860000401,0, +,,,,,40,,148.26424800000004,,,,61.87385499924858,11,,,,2,0,20.439129999540455,204128,,28.597872317161652,,9.314573249976087,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,103053,3,,,baseline,518.4450309998283,0, +,,,,,3,,132.87090899999998,,,,101.8542570000136,6,,,,4,0,40.88298499947996,248024,,70.81962519449986,,33.3167549997779,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77108,3,,,baseline,187.61876899952767,0, +,,,,,6,,134.51104999999995,,,,106.43646500011528,7,,,,2,1,53.77571800010628,253912,,39.749870154191335,,14.719185800568077,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,86272,3,,,baseline,338.3936840000388,0, +,,,,,6,,46.014463000000006,,,,27.82006800043746,6,,,,1,0,21.97344699936366,121976,,78.71599246380109,,18.644381499525473,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58401,3,,,timer500,58.456308000131685,0, +,,,,,6,,88.42115100000004,,,,45.16643100032525,8,,,,0,0,12.899714000122911,132208,,72.98840161575252,,9.14315320016612,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77170,3,,,timer500,121.14411199945607,0, +30,,,,,,,347.83586600000007,,,,,60,,,,0,0,14.05785500002821,134256,,66.67640972201299,,10.894065649672482,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,3,,,timer500,521.6775580001922,0, +,,,,,,,14.12591299999999,,,,,2,,,,0,0,10.87127600032545,138864,,99.86727171675668,,9.311362100215769,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,3,,,timer500,14.144687000225531,0, +,,,,,,,47.41751099999991,,,,,5,,,,1,0,18.47148999979254,140528,,77.39579069547625,,16.425084099837473,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,55699,3,,,timer500,61.26626599962037,0, +,,,,,,,82.18784700000015,,,,,3,,,,1,0,43.9962640003796,144072,,96.96597445692531,,36.69752475036148,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46923,3,,,timer500,84.759471000325,0, +,,,,,6,,417.79750699999994,,,,61.07230699944921,30,,,,2,0,20.68846800022584,185112,,79.62567593926283,,10.39660960079345,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,236866,3,,,timer500,524.7019909993469,0, +,,,,,40,,137.68841999999992,,,,70.17108099989855,7,,,,2,0,24.07474700077728,217484,,92.08269777859547,,21.552122000111922,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,88696,3,,,timer500,149.52691800044704,0, +,,,,,3,,78.89178100000005,,,,76.78620800015779,6,,,,3,0,23.144181000243407,260388,,71.94998526414372,,20.745131400071834,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74784,3,,,timer500,109.64808500011713,0, +,,,,,6,,102.36697799999983,,,,65.63645499954873,6,,,,2,0,26.049313000039547,263332,,78.22414531580883,,19.09884324970335,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,85418,3,,,timer500,130.86365800063504,0, +,,,,,6,,58.72666600000004,,,,20.528194000689837,8,,,,1,0,19.302532000547217,121956,,30.098818549966847,,6.560191000535267,,,,,,,,1000,,,render_1000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,3,,,candidate,195.11286099987046,0, +,,,,,6,,137.85333099999997,,,,67.75085699973715,12,,,,2,0,22.864257999681286,130040,,27.54739581287224,,12.37913169981763,,,,,,,,10000,,,render_10000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,91747,3,,,candidate,500.4223699997965,0, +30,,,,,,,362.835188,,,,,60,,,,0,0,13.526966000536047,131960,,68.26940586225324,,11.901473799953235,,,,,,,,,,,scroll_30,0640c96464dcb50434f97b14d097418b51b110ba,,render,,910953,3,,,candidate,531.4755320005133,0, +,,,,,,,22.13992599999992,,,,,2,,,,1,0,21.01896099986334,136568,,98.72968275252425,,17.979754449897875,,,,,,,,,,,filter_open_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,28980,3,,,candidate,22.424792000492744,0, +,,,,,,,74.93763499999994,,,,,3,,,,2,0,27.12238600008277,138488,,93.51943056089605,,26.498898500103678,,,,,,,,,,,filter_search_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,49857,3,,,candidate,80.13055099945632,0, +,,,,,,,57.37259299999997,,,,,5,,,,1,0,28.677130999421934,144208,,81.89834817337506,,22.577192399894546,,,,,,,,,,,filter_close_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,54189,3,,,candidate,70.05341900003259,0, +,,,,,6,,295.92884900000007,,,,58.11547400026029,21,,,,2,0,19.608109999462613,178384,,23.730129746988734,,8.334811599634117,,,,,,,,50000,,,render_50000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,153827,3,,,candidate,1247.0595490003689,0, +,,,,,40,,178.6999869999999,,,,91.52869800072949,11,,,,2,0,39.369949000611086,204372,,37.24308767456275,,10.28373850032949,,,,,,,,5000,,,render_5000_40_wide,0640c96464dcb50434f97b14d097418b51b110ba,,render,,103053,3,,,candidate,479.8205470005996,0, +,,,,,3,,116.40613999999982,,,,82.92072200038092,7,,,,2,0,29.049318000143103,248312,,63.43029461129953,,28.49625600003492,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,render,,80745,3,,,candidate,183.51820800035057,0, +,,,,,6,,100.85527099999992,,,,69.87176300026476,7,,,,2,0,29.4719630002146,254712,,54.11624415940334,,16.469862800040552,,,,,,,,10000,,,render_10000_6_decimal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,81112,3,,,candidate,186.36783200054197,0, +,,,,,6,,21.30125500000002,,,,9.337854000477819,4,,,,0,0,10.47456400021474,123092,,52.525290609367985,,9.653582800383443,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,4,,,bulk,40.55428299943742,0, +,,,,,6,,59.25112499999996,,,,60.77889199968922,6,,,,2,0,22.427598999565816,134736,,74.79475855855961,,20.95112015001177,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58785,4,,,bulk,79.21828500002448,0, +30,,,,,,,367.550933,,,,,60,,,,0,0,13.25562100020761,136016,,70.99678798833725,,12.726043549600943,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,911474,4,,,bulk,517.7007909996973,0, +,,,,,,,14.703683000000023,,,,,2,,,,0,0,11.647811000439104,140624,,98.19832508936587,,9.99172610033383,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,4,,,bulk,14.97345600000699,0, +,,,,,,,58.21445199999997,,,,,3,,,,1,0,25.72508800050855,142288,,79.27510321247395,,22.358707850225976,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49971,4,,,bulk,73.43346099969494,0, +,,,,,,,77.48775999999991,,,,,5,,,,1,0,47.918231999683485,146208,,89.71582198408224,,37.14105569963064,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,4,,,bulk,86.37022800030536,0, +,,,,,6,,140.5030919999999,,,,137.2956579998572,6,,,,2,1,97.7619610003967,191196,,79.84966497350422,,50.57587780021993,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,4,,,bulk,175.9595260000424,0, +,,,,,40,,136.85305300000005,,,,135.20509200043307,6,,,,2,1,90.57669400055602,204764,,82.17496616899379,,56.50551850032571,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,4,,,bulk,166.5386180002315,0, +,,,,,3,,137.85383399999995,,,,143.78817099986918,6,,,,3,1,88.1424030004564,224384,,79.0457799206556,,50.67483990002979,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,4,,,bulk,174.39746200034278,0, +,,,,,6,,79.71668900000006,,,,75.6151810001029,6,,,,2,0,36.06600100021751,225280,,73.93060895751476,,26.026979700254728,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,4,,,bulk,107.82636599924444,0, +,,,,,6,,51.304925000000004,,,,33.69038299933891,6,,,,1,0,29.529065000242554,126108,,66.32357144027715,,24.20228865018543,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,57909,4,,,preview-thread,77.35549200060632,0, +,,,,,6,,85.65582800000004,,,,94.08041899951058,5,,,,2,0,47.6669969995055,137316,,71.71777288286226,,34.18620099966574,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,51482,4,,,preview-thread,119.43459000030998,0, +30,,,,,,,382.0748749999999,,,,,60,,,,1,0,17.539990000041144,138852,,65.90091693557076,,13.85555110011409,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910822,4,,,preview-thread,579.7717129999,0, +,,,,,,,21.113756999999957,,,,,2,,,,1,0,18.877973999333335,143460,,98.82685176166092,,16.163990549393922,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28924,4,,,preview-thread,21.364393000112614,0, +,,,,,,,72.01525600000002,,,,,3,,,,2,0,32.68990000025951,145124,,97.81238153867876,,28.89648375014076,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,4,,,preview-thread,73.62590999946406,0, +,,,,,,,80.01420699999984,,,,,5,,,,1,0,48.519635000156995,148812,,82.6972446762466,,38.336058800105064,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54189,4,,,preview-thread,96.75558999970235,0, +,,,,,6,,212.023925,,,,158.55564100002084,7,,,,3,1,101.46634200020344,198812,,88.50517916252971,,56.62633770004501,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,97519,4,,,preview-thread,239.56103699947562,0, +,,,,,40,,160.77929300000005,,,,161.0270989995115,6,,,,3,1,109.59944399939559,207384,,82.68762745027495,,60.47941699973301,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,85760,4,,,preview-thread,194.44177799960016,0, +,,,,,3,,96.09953100000013,,,,99.68609699990338,7,,,,1,1,51.58008099999279,229276,,80.14226714524197,,33.041154999973514,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,73108,4,,,preview-thread,119.91117100023985,0, +,,,,,6,,76.16068200000004,,,,93.733992000125,6,,,,1,1,52.87853400033782,230172,,68.28595949169788,,27.77280830056949,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71886,4,,,preview-thread,111.53197899966472,0, +,,,,,6,,17.611684000000018,,,,6.3684589995318674,4,,,,0,0,7.813655000172729,115676,,43.0426288279444,,5.92393715011894,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46785,4,,,row-backend,40.91684100058046,0, +,,,,,6,,35.86577699999999,,,,41.17065900027228,6,,,,0,0,13.501421000109984,122076,,62.29081858089999,,12.57352585018452,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58785,4,,,row-backend,57.57795099998475,0, +30,,,,,,,386.9372360000001,,,,,60,,,,1,0,22.565338000385964,125020,,64.15964966261654,,12.453050999938565,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,911474,4,,,row-backend,603.0850200004352,0, +,,,,,,,15.777782999999989,,,,,2,,,,0,0,14.614261000242548,129628,,98.93073950057968,,12.504838150216521,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28981,4,,,row-backend,15.948312000546139,0, +,,,,,,,45.915848000000146,,,,,4,,,,1,0,19.47377100088488,136420,,80.0673184301813,,15.442193800545276,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,52892,4,,,row-backend,57.34655400010524,0, +,,,,,,,56.6239770000001,,,,,5,,,,1,0,26.368128999929468,140184,,83.20874132948373,,20.712811499988664,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,54303,4,,,row-backend,68.05051500032278,0, +,,,,,6,,62.397064,,,,57.756584999879124,6,,,,2,0,19.278182000671222,163352,,69.74830519828825,,17.99862200015923,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77109,4,,,row-backend,89.46033000029274,0, +,,,,,40,,62.465197999999944,,,,59.278279999489314,6,,,,2,0,18.77450800031511,180632,,93.57015467707981,,18.581849500260432,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,76909,4,,,row-backend,66.7576089999784,0, +,,,,,3,,102.09143100000007,,,,99.54363999986526,6,,,,3,0,42.69473600026686,194072,,82.46538180641808,,35.701619000128616,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,74955,4,,,row-backend,123.7991369998781,0, +,,,,,6,,69.43352199999997,,,,68.54906500029756,6,,,,2,0,24.069436000099813,199192,,65.37611613839739,,20.278754800092422,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,75185,4,,,row-backend,106.20625100000325,0, +,,,,,6,,82.314316,,,,40.38947000026383,8,,,,1,0,36.76715800076636,121992,,49.38402108433011,,14.466483199721543,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71643,4,,,baseline,166.68208499959292,0, +,,,,,6,,93.21515899999999,,,,68.71807600055035,8,,,,1,0,21.68491999975231,130112,,40.10703247811358,,12.86154750006971,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,71586,4,,,baseline,232.4159959998724,0, +30,,,,,,,391.14627999999993,,,,,59,,,,1,0,19.75181000045268,132288,,67.31970354684661,,14.346156000392508,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,903685,4,,,baseline,581.0279299994363,0, +,,,,,,,23.59288100000012,,,,,2,,,,1,0,19.537272000088706,137024,,98.5428342896502,,16.714523400123646,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,4,,,baseline,23.941752000609995,0, +,,,,,,,72.67676299999981,,,,,3,,,,2,0,34.37965200020699,138688,,78.66577828542262,,29.63284280005609,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,4,,,baseline,92.38675899996451,0, +,,,,,,,67.49693400000001,,,,,3,,,,2,0,31.168679000184056,144416,,80.43516039909434,,28.19618300010915,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46923,4,,,baseline,83.91471300001285,0, +,,,,,6,,348.82411199999996,,,,70.4207660000975,21,,,,2,0,25.0952719999259,178172,,24.248197671523886,,11.068148900467344,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,156567,4,,,baseline,1438.5568640000201,0, +,,,,,40,,133.15854299999995,,,,77.01014099984604,9,,,,2,0,35.606673000183946,204120,,32.58584312569833,,8.759860399704834,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,95888,4,,,baseline,408.6392440003692,0, +,,,,,3,,118.42526499999994,,,,88.65260699985811,7,,,,4,0,29.577039999931003,248052,,66.76103125415544,,27.289430800210532,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,80745,4,,,baseline,177.38681199989514,0, +,,,,,6,,108.76359499999965,,,,81.71218300049077,7,,,,2,0,32.68035999928543,254196,,46.278394410519404,,17.39353979948644,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,81049,4,,,baseline,235.02024299978075,0, +,,,,,6,,44.802220999999975,,,,27.55641400017339,6,,,,1,0,22.673605000018142,121764,,60.95093298540676,,17.3976578501606,,,,,,,,1000,,,render_1000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,58401,4,,,timer500,73.50539000071876,0, +,,,,,6,,94.74117399999999,,,,53.80054900069808,6,,,,0,0,16.614911000142456,131800,,76.3482351844812,,14.317227499868748,,,,,,,,10000,,,render_10000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,64312,4,,,timer500,124.09084999944753,0, +30,,,,,,,347.37724699999995,,,,,60,,,,0,0,13.306862999452276,133848,,66.4427808246839,,11.96988669955317,,,,,,,,,,,scroll_30,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,910953,4,,,timer500,522.8216559999055,0, +,,,,,,,25.25361299999995,,,,,2,,,,1,0,22.85609799957456,138456,,98.95406218304903,,19.573626699611843,,,,,,,,,,,filter_open_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,28980,4,,,timer500,25.52054199986742,0, +,,,,,,,66.50086200000005,,,,,3,,,,2,0,22.234745999521692,140248,,93.6430262869158,,20.829187799627103,,,,,,,,,,,filter_search_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,49857,4,,,timer500,71.015284999703,0, +,,,,,,,81.90159699999988,,,,,3,,,,1,0,44.13266499988822,143808,,99.60834979463671,,36.38528474982195,,,,,,,,,,,filter_close_10000,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,46923,4,,,timer500,82.22362600008637,0, +,,,,,6,,346.5621510000001,,,,62.422492999758106,27,,,,2,0,21.228510999317223,184392,,77.60010426330365,,9.671127799738308,,,,,,,,50000,,,render_50000_6_normal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,214770,4,,,timer500,446.600109999963,0, +,,,,,40,,131.22753900000018,,,,71.30656499975885,7,,,,2,0,23.896716999952332,216720,,89.76865438947783,,23.12181839990444,,,,,,,,5000,,,render_5000_40_wide,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,88696,4,,,timer500,146.18414400047186,0, +,,,,,3,,89.77185400000009,,,,86.83794999979,6,,,,3,0,27.832787000188546,259420,,72.12274299805924,,25.915994600036353,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,77042,4,,,timer500,124.47093700029654,0, +,,,,,6,,127.66503499999993,,,,103.42628199941828,6,,,,2,0,49.733470999963174,264372,,86.64123150775396,,36.11776010013271,,,,,,,,10000,,,render_10000_6_decimal,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,render,,80216,4,,,timer500,147.3490539992781,0, +,,,,,6,,48.150556999999985,,,,18.619743000272138,8,,,,0,0,14.34302599966031,121992,,28.74275927369966,,8.409323600353666,,,,,,,,1000,,,render_1000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,4,,,candidate,167.52238900062366,0, +,,,,,6,,54.33589099999997,,,,40.34605099968758,8,,,,0,0,11.076664000138406,129904,,30.897975874400082,,9.060316999803035,,,,,,,,10000,,,render_10000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,71643,4,,,candidate,175.8558269993955,0, +30,,,,,,,367.77973799999995,,,,,60,,,,1,0,26.228938999447564,132080,,66.8990156129785,,12.145926750345096,,,,,,,,,,,scroll_30,0640c96464dcb50434f97b14d097418b51b110ba,,render,,910953,4,,,candidate,549.753586999941,0, +,,,,,,,13.521630000000062,,,,,2,,,,0,0,12.288248000113525,136688,,99.18237947025943,,10.531968950199365,,,,,,,,,,,filter_open_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,28980,4,,,candidate,13.633096999910777,0, +,,,,,,,42.78386700000003,,,,,4,,,,1,0,18.801808000825986,138480,,70.64933902910967,,15.215617600661059,,,,,,,,,,,filter_search_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,52778,4,,,candidate,60.558057000889676,0, +,,,,,,,51.8141379999999,,,,,4,,,,1,0,27.020608000493667,144124,,79.52737101700365,,21.030220450320474,,,,,,,,,,,filter_close_10000,0640c96464dcb50434f97b14d097418b51b110ba,,render,,50570,4,,,candidate,65.15258499985066,0, +,,,,,6,,311.748229,,,,60.54282300010527,21,,,,2,0,20.926833000085026,178292,,25.15634021963218,,10.343253650553374,,,,,,,,50000,,,render_50000_6_normal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,153827,4,,,candidate,1239.2431739999665,0, +,,,,,40,,199.69980700000002,,,,87.38768200055347,11,,,,3,0,36.057339999497344,204292,,40.60197200615481,,15.28838395012826,,,,,,,,5000,,,render_5000_40_wide,0640c96464dcb50434f97b14d097418b51b110ba,,render,,103053,4,,,candidate,491.84755599981145,0, +,,,,,3,,129.74582599999997,,,,97.95107399986591,7,,,,2,0,36.71770599987212,248244,,60.320461143377926,,31.710251949625622,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,render,,80745,4,,,candidate,215.09422100007214,0, +,,,,,6,,163.93443200000002,,,,97.70494799977314,9,,,,2,1,50.50053799925081,254516,,48.043150579862306,,12.660188199988621,,,,,,,,10000,,,render_10000_6_decimal,0640c96464dcb50434f97b14d097418b51b110ba,,render,,87980,4,,,candidate,341.2233170001855,0, +,,,,,,,18.335354999999996,,,,,1,,,,0,0,0,115140,,0.36650450781631044,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,0,,,baseline,5002.763843000139,0, +,,,,,,,43.41936500000004,,,,,10,,,,0,0,0,115268,,0.8672802448673702,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,0,,,baseline,5006.382337999639,0, +,,,,,,,9.319234999999981,,,,,1,,,,0,0,0,114736,,0.1860142452272421,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,0,,,candidate,5009.957699000552,0, +,,,,,,,28.71019300000005,,,,,10,,,,0,0,0,115248,,0.5735075799319462,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,0,,,candidate,5006.070364999687,0, +,,,,,,,21.130227,,,,,1,,,,0,0,0,114792,,0.42221864524707087,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,1,,,baseline,5004.569844999423,0, +,,,,,,,40.626217999999994,,,,,10,,,,0,0,0,115048,,0.8115232525804641,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,1,,,baseline,5006.1680759999945,0, +,,,,,,,5.502252000000041,,,,,1,,,,0,0,0,114940,,0.10988885529963235,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,1,,,candidate,5007.106484999895,0, +,,,,,,,20.87303800000001,,,,,10,,,,0,0,0,115324,,0.41717470964264974,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,1,,,candidate,5003.428424000049,0, +,,,,,,,20.597164,,,,,1,,,,0,0,0,115128,,0.4115848968961297,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,2,,,baseline,5004.35369600018,0, +,,,,,,,37.158716000000034,,,,,10,,,,0,0,0,115256,,0.7425254526982759,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,2,,,baseline,5004.369326999949,0, +,,,,,,,5.789838000000048,,,,,1,,,,0,0,0,115036,,0.11561712544095844,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,2,,,candidate,5007.76851000046,0, +,,,,,,,29.352531999999986,,,,,10,,,,0,0,0,115292,,0.5863718058041257,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,2,,,candidate,5005.788428000415,0, +,,,,,,,21.690146999999993,,,,,1,,,,0,0,0,115108,,0.4334819956524016,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,3,,,baseline,5003.701933999764,0, +,,,,,,,39.87964199999999,,,,,10,,,,0,0,0,115364,,0.7967359592399655,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,3,,,baseline,5005.3774449997945,0, +,,,,,,,5.245129000000015,,,,,1,,,,0,0,0,115024,,0.10474859125382416,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,3,,,candidate,5007.350396999755,0, +,,,,,,,19.02019699999996,,,,,10,,,,0,0,0,115408,,0.3800355340853238,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,3,,,candidate,5004.846992999774,0, +,,,,,,,20.334995999999993,,,,,1,,,,0,0,0,115080,,0.4063789090271279,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,4,,,baseline,5003.949650999857,0, +,,,,,,,38.823887,,,,,10,,,,0,0,0,115336,,0.7760328687590576,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,4,,,baseline,5002.866317000553,0, +,,,,,,,5.856842000000029,,,,,1,,,,0,0,0,109012,,0.11696485917538164,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,4,,,candidate,5007.351815999755,0, +,,,,,,,27.481756999999995,,,,,10,,,,0,0,0,109268,,0.5488413484525998,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,4,,,candidate,5007.231520999994,0, +,,,,,,,21.07285000000003,,,,,1,,,,0,0,0,114996,,0.4211462280281254,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,5,,,baseline,5003.68959699972,0, +,,,,,,,40.649305999999996,,,,,10,,,,0,0,0,115252,,0.8124107252294229,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,5,,,baseline,5003.5412799998085,0, +,,,,,,,6.401394999999976,,,,,1,,,,0,0,0,114908,,0.12781969169216198,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,5,,,candidate,5008.144610000272,0, +,,,,,,,23.730517000000006,,,,,10,,,,0,0,0,115292,,0.47380461970340915,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,5,,,candidate,5008.502663999934,0, +,,,,,,,21.875052000000007,,,,,1,,,,0,0,0,115064,,0.4362710805747208,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,6,,,baseline,5014.096275000156,0, +,,,,,,,36.81090100000001,,,,,10,,,,0,0,0,115320,,0.735743914567496,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,6,,,baseline,5003.22194599994,0, +,,,,,,,5.9093639999999725,,,,,1,,,,0,0,0,115128,,0.1178200577840968,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,6,,,candidate,5015.584028000376,0, +,,,,,,,25.770022000000004,,,,,10,,,,0,0,0,115384,,0.5149466256749846,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,6,,,candidate,5004.406420999658,0, +,,,,,,,19.236387000000022,,,,,1,,,,0,0,0,109000,,0.3844558959264083,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,7,,,baseline,5003.535438999279,0, +,,,,,,,47.11620300000002,,,,,10,,,,0,0,0,109256,,0.9415074041979065,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,7,,,baseline,5004.336959000284,0, +,,,,,,,7.414523999999978,,,,,1,,,,0,0,0,114916,,0.14805157122261337,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,7,,,candidate,5008.068431000538,0, +,,,,,,,22.141260000000052,,,,,10,,,,0,0,0,115300,,0.44238564597604724,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,7,,,candidate,5004.967996000232,0, +,,,,,,,21.317291000000015,,,,,1,,,,0,0,0,108988,,0.4258788481018219,,0,,,,,,,,,,,idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,18297,8,,,baseline,5005.482450000272,0, +,,,,,,,39.37542200000005,,,,,10,,,,0,0,0,109116,,0.7868343520864391,,0,,,,,,,,,,,editor_idle_5s,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,idle,,20199,8,,,baseline,5004.283543999918,0, +,,,,,,,6.577398000000012,,,,,1,,,,0,0,0,114940,,0.13134598355439636,,0,,,,,,,,,,,idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,18297,8,,,candidate,5007.688718000281,0, +,,,,,,,22.465971000000028,,,,,10,,,,0,0,0,115324,,0.4487847724682804,,0,,,,,,,,,,,editor_idle_5s,0640c96464dcb50434f97b14d097418b51b110ba,,idle,,20199,8,,,candidate,5005.956613999842,0, +,,,,,3,,111.05918599999998,,,,24.644273000376415,10,,,,2,0,23.371641999910935,164312,,31.215944724536545,,13.44512660045438,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,long-cells,,77902,0,,,baseline,355.77710999950796,0, +,,,,,3,,77.560244,,,,41.44817199994577,8,,,,1,0,38.514126000445685,164124,,37.73672293217173,,7.3271224997552045,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,long-cells,,68382,0,,,candidate,205.5298870000115,0, +,,,,,3,,104.17551200000003,,,,28.062180999768316,8,,,,3,0,25.721437000465812,163840,,57.420243054353485,,24.41587224968316,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,long-cells,,68382,1,,,baseline,181.42645599982643,0, +,,,,,3,,100.066294,,,,33.05878900027892,8,,,,3,0,31.516502999802473,164008,,51.147098061662604,,20.32164279964489,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,long-cells,,68382,1,,,candidate,195.6441279999126,0, +,,,,,3,,90.61595399999995,,,,39.28181599985692,8,,,,1,0,36.78071099977387,164124,,47.35267794540506,,12.095124299612506,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,long-cells,,68382,2,,,baseline,191.3639479998892,0, +,,,,,3,,77.98576800000001,,,,20.703647999653185,9,,,,2,0,19.36143799968704,163828,,41.06475833608619,,15.086142000036471,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,long-cells,,71999,2,,,candidate,189.90923399996973,0, +,,,,,3,,71.969014,,,,23.16867999979877,8,,,,1,0,21.873499999965134,164036,,43.993544811093244,,14.453023199821464,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,long-cells,,68382,3,,,baseline,163.58994099937263,0, +,,,,,3,,86.470763,,,,28.52916699976049,9,,,,1,0,26.078246999641124,163912,,46.174337938003205,,14.59838474999742,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,long-cells,,71999,3,,,candidate,187.2701740003322,0, +,,,,,3,,85.37497799999998,,,,36.31427800064557,8,,,,1,0,33.75413500009017,163828,,52.38941767720528,,14.609322849646556,,,,,,,,1000,,,render_1000_3_long,9db49c230c7cab6abe497d14b9f51e39ad30cb42,,long-cells,,68382,4,,,baseline,162.96225800033426,0, +,,,,,3,,86.277948,,,,28.823684000599314,9,,,,1,0,26.49259199926746,163964,,46.39239669677812,,12.651709900201237,,,,,,,,1000,,,render_1000_3_long,0640c96464dcb50434f97b14d097418b51b110ba,,long-cells,,71999,4,,,candidate,185.97432800015667,0, +,,,,,,,0.8688919999999961,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,baseline,0.8737979997022194,, +,,,,,,,0.8562159999999999,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,baseline,0.8586220001234324,, +,,,,,,,0.8510099999999993,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,baseline,0.8530270006303908,, +,,,,,,,0.8400689999999988,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,baseline,0.8417250001002685,, +,,,,,,,0.8466290000000015,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,baseline,0.8542840005247854,, +,,,,,,,0.8403350000000045,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,baseline,0.842659000227286,, +,,,,,,,0.8419499999999941,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,baseline,0.8403470001212554,, +,,,,,,,0.840581,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,baseline,0.8605089997217874,, +,,,,,,,0.8476359999999988,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,23256,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,baseline,0.8825739996609627,, +,,,,,,,0.1566589999999965,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,baseline,0.15598200025124243,, +,,,,,,,0.159287000000001,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,baseline,0.15890799932094524,, +,,,,,,,0.1580169999999964,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,baseline,0.17079500048566842,, +,,,,,,,0.1557210000000045,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,baseline,0.16855600006238092,, +,,,,,,,0.15474199999999938,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,baseline,0.15433999942615628,, +,,,,,,,0.1594800000000035,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,baseline,0.1637149998714449,, +,,,,,,,0.15143299999999943,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,baseline,0.15109400010260288,, +,,,,,,,0.15267599999999742,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,baseline,0.15236200033541536,, +,,,,,,,0.15571699999999966,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,23256,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,baseline,0.15525099934166064,, +,,,,,,,1.0070380000000019,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,baseline,1.0086760003105155,, +,,,,,,,0.9108879999999986,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,baseline,0.9129609998126398,, +,,,,,,,0.9085469999999957,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,baseline,0.9676749996287981,, +,,,,,,,0.8909950000000055,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,baseline,0.8931400006986223,, +,,,,,,,0.890674000000008,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,baseline,0.9169360000669258,, +,,,,,,,0.8834239999999938,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,baseline,0.8846260006976081,, +,,,,,,,0.8861569999999985,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,baseline,0.8883959999366198,, +,,,,,,,0.8992339999999988,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,baseline,0.9013979997689603,, +,,,,,,,0.9007739999999931,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,24208,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,baseline,0.906566999219649,, +,,,,,,,0.8250429999999975,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,baseline,0.8265850001407671,, +,,,,,,,0.792548000000004,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,baseline,0.795141999333282,, +,,,,,,,0.7921310000000015,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,baseline,0.7916739996289834,, +,,,,,,,0.7858220000000055,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,baseline,0.7901919998403173,, +,,,,,,,0.7899249999999969,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,baseline,0.7920870002635638,, +,,,,,,,0.8041909999999958,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,baseline,0.8056349997787038,, +,,,,,,,0.8224230000000027,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,baseline,0.8241430005000439,, +,,,,,,,0.8253059999999979,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,baseline,0.8465970004181145,, +,,,,,,,0.8008719999999941,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,24208,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,baseline,0.8293110004160553,, +,,,,,,,77.08953499999998,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,baseline,82.55968600042252,, +,,,,,,,77.062876,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,baseline,80.7607739998275,, +,,,,,,,76.74646099999998,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,baseline,77.53336900077556,, +,,,,,,,77.240916,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,baseline,78.05847500003438,, +,,,,,,,77.33553699999996,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,baseline,78.18598699941504,, +,,,,,,,76.89023699999997,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,baseline,77.59970600000088,, +,,,,,,,77.14700600000002,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,baseline,78.07793399933871,, +,,,,,,,76.82957000000002,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,baseline,77.6655909994588,, +,,,,,,,76.73233499999998,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,25104,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,baseline,77.4142739992385,, +,,,,,,,1.4355879999999877,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,baseline,1.4374490001500817,, +,,,,,,,1.430841000000016,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,baseline,1.4345780000439845,, +,,,,,,,1.420360999999981,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,baseline,1.4249800005927682,, +,,,,,,,1.390366999999948,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,baseline,1.3944480006102822,, +,,,,,,,1.472114999999996,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,baseline,1.490261999606446,, +,,,,,,,1.4611620000000158,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,baseline,1.4949350006645545,, +,,,,,,,1.4164939999999904,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,baseline,1.426495999112376,, +,,,,,,,1.3884239999999437,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,baseline,1.3907069997003418,, +,,,,,,,1.4643060000000263,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,25104,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,baseline,1.4692180002384703,, +,,,,,,,76.55299800000004,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,baseline,77.27992299987818,, +,,,,,,,76.7176679999999,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,baseline,77.47960300002887,, +,,,,,,,76.483407,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,baseline,77.2887470002388,, +,,,,,,,76.67310100000013,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,baseline,77.46186100030172,, +,,,,,,,76.7857219999999,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,baseline,77.59475100010604,, +,,,,,,,76.76680700000004,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,baseline,77.61465499970654,, +,,,,,,,77.11616599999994,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,baseline,79.09078499960742,, +,,,,,,,76.78984799999999,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,baseline,79.62344299994584,, +,,,,,,,79.33738099999998,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,25104,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,baseline,80.81612800015137,, +,,,,,,,79.3797679999999,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,baseline,80.98197399976925,, +,,,,,,,80.34967800000015,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,baseline,81.98822700069286,, +,,,,,,,79.63988099999986,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,baseline,81.02048700038722,, +,,,,,,,79.21360200000005,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,baseline,80.07607600029587,, +,,,,,,,78.49389600000035,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,baseline,79.33632000003854,, +,,,,,,,78.99632099999998,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,baseline,79.79373800026224,, +,,,,,,,77.75389700000002,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,baseline,78.63282699963747,, +,,,,,,,78.36055900000005,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,baseline,79.16510699942592,, +,,,,,,,78.50161999999995,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,25104,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,baseline,79.25381199947878,, +,,,,,,,1970.0998969999998,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,baseline,2004.4071980000808,, +,,,,,,,2007.9932360000007,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,baseline,2043.7765450005827,, +,,,,,,,2011.722444,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,baseline,2041.320270000142,, +,,,,,,,2228.837761000001,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,baseline,2280.946760000006,, +,,,,,,,2336.1570149999993,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,baseline,2375.049565000154,, +,,,,,,,2295.49707,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,baseline,2337.474960999316,, +,,,,,,,2447.0888009999994,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,baseline,2560.171488999913,, +,,,,,,,2474.2440529999994,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,baseline,2578.888895000091,, +,,,,,,,2416.1060659999976,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,29500,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,baseline,2493.4609940000882,, +,,,,,,,8.726693999999924,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,baseline,8.798404000117444,, +,,,,,,,8.769440000001794,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,baseline,8.819944000606483,, +,,,,,,,8.812400000000054,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,baseline,8.936241999435879,, +,,,,,,,8.775760999998994,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,baseline,8.920899999793619,, +,,,,,,,8.848292999999785,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,baseline,8.926984000027005,, +,,,,,,,8.8380860000008,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,baseline,8.867112999723759,, +,,,,,,,8.79374499999841,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,baseline,8.923633999984304,, +,,,,,,,8.885327000001553,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,baseline,8.918958000322164,, +,,,,,,,8.86520799999957,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,29500,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,baseline,9.02821700037748,, +,,,,,,,2289.139985000002,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,baseline,2338.7125600002037,, +,,,,,,,2265.1314639999996,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,baseline,2303.0703170006745,, +,,,,,,,2334.7581009999985,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,baseline,2382.3254899998574,, +,,,,,,,2280.9912649999974,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,baseline,2313.9512560001094,, +,,,,,,,2331.036447999999,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,baseline,2424.3105699997614,, +,,,,,,,2416.36982,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,baseline,2455.214949999572,, +,,,,,,,2300.630856000005,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,baseline,2339.063669999632,, +,,,,,,,2253.072422999999,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,baseline,2284.315974000492,, +,,,,,,,2427.9119489999985,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,29500,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,baseline,2519.098480000139,, +,,,,,,,2365.7797190000024,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,baseline,2448.617328999717,, +,,,,,,,2527.261424999999,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,baseline,2860.6072960001256,, +,,,,,,,2571.9200189999965,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,baseline,3002.1811220003656,, +,,,,,,,2486.0428770000026,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,baseline,2569.619354000679,, +,,,,,,,2391.8242879999952,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,baseline,2432.91387499994,, +,,,,,,,2271.163850000001,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,baseline,2295.276984999873,, +,,,,,,,2284.120766000001,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,baseline,2302.7147890006745,, +,,,,,,,2269.171924999995,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,baseline,2288.028279000173,, +,,,,,,,2277.328707999999,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,29500,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,baseline,2326.203823000469,, +,,,,,,,0.15194100000000266,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,candidate,0.14922599984856788,, +,,,,,,,0.1337579999999977,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,candidate,0.13270299950818298,, +,,,,,,,0.12770500000000573,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,candidate,0.12692200016317656,, +,,,,,,,0.1230480000000006,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,candidate,0.12232300014147768,, +,,,,,,,0.11941099999999982,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,candidate,0.1220619997184258,, +,,,,,,,0.1149079999999969,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,candidate,0.11439999980211724,, +,,,,,,,0.11323600000000267,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,candidate,0.11266999990766635,, +,,,,,,,0.11167899999999648,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,candidate,0.11109800016129157,, +,,,,,,,0.11017299999999813,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,23208,100,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,candidate,0.10946000020339852,, +,,,,,,,0.18514700000000356,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,candidate,0.18433200057188515,, +,,,,,,,0.18773100000000348,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,candidate,0.1870500000222819,, +,,,,,,,0.18068899999999777,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,candidate,0.18018199989455752,, +,,,,,,,0.18242499999999995,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,candidate,0.18189699949289206,, +,,,,,,,0.18046399999999824,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,candidate,0.17991300046560355,, +,,,,,,,0.18111299999999664,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,candidate,0.1805419997253921,, +,,,,,,,0.18277499999999614,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,candidate,0.18209999961982248,, +,,,,,,,0.1806580000000002,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,candidate,0.18016499961959198,, +,,,,,,,0.1801399999999953,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,23208,100,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,candidate,0.1796630003809696,, +,,,,,,,0.2568350000000108,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,candidate,0.25467100022069644,, +,,,,,,,0.20581800000001038,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,candidate,0.2050200000667246,, +,,,,,,,0.1977769999999962,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,candidate,0.20681400019384455,, +,,,,,,,0.19677099999999836,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,candidate,0.19599600000219652,, +,,,,,,,0.18872999999999807,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,candidate,0.18801599981088657,, +,,,,,,,0.18542500000000295,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,candidate,0.1844159996835515,, +,,,,,,,0.18307999999998825,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,candidate,0.18228099997941172,, +,,,,,,,0.18347999999999975,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,candidate,0.18607299989525927,, +,,,,,,,0.18096899999998917,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,24160,100,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,candidate,0.18014399938692804,, +,,,,,,,0.0011619999999989972,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,candidate,0.0006330001269816421,, +,,,,,,,0.0008449999999993185,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,candidate,0.0004780004019266926,, +,,,,,,,0.0007429999999974957,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,candidate,0.00039800033846404403,, +,,,,,,,0.0005480000000029905,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,candidate,0.00022400035959435627,, +,,,,,,,0.0004920000000047109,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,candidate,0.00019900016923202202,, +,,,,,,,0.0005230000000022716,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,candidate,0.00022099993657320738,, +,,,,,,,0.0005689999999919371,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,candidate,0.000267999894276727,, +,,,,,,,0.0005159999999920784,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,candidate,0.00021599953470285982,, +,,,,,,,0.0005099999999952365,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,24160,100,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,candidate,0.0002130000211764127,, +,,,,,,,0.8243210000000029,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,candidate,0.8339999994859681,, +,,,,,,,0.8090050000000015,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,candidate,0.8119800004351418,, +,,,,,,,0.8181750000000043,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,candidate,0.8204849991670926,, +,,,,,,,0.7997439999999911,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,candidate,0.8030110002437141,, +,,,,,,,0.8016210000000024,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,candidate,0.800871000137704,, +,,,,,,,0.7969289999999879,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,candidate,0.8053989995460142,, +,,,,,,,0.7922060000000036,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,candidate,0.7955729997775052,, +,,,,,,,0.7906500000000038,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,candidate,0.7927680007924209,, +,,,,,,,0.7785720000000051,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,25440,1000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,candidate,0.7800209996275953,, +,,,,,,,1.609368,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,candidate,1.623186999495374,, +,,,,,,,1.5827299999999904,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,candidate,1.5895499991529505,, +,,,,,,,1.6069099999999892,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,candidate,1.6082669999377686,, +,,,,,,,1.6094140000000035,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,candidate,1.6145150002557784,, +,,,,,,,1.6261340000000013,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,candidate,1.6284220000670757,, +,,,,,,,1.6140150000000104,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,candidate,1.6208560000450234,, +,,,,,,,1.625720000000011,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,candidate,1.6318219995810068,, +,,,,,,,1.6149189999999924,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,candidate,1.6202229999180418,, +,,,,,,,1.6149679999999944,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,25440,1000,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,candidate,1.6193009996641194,, +,,,,,,,0.6614169999999975,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,candidate,0.6600910000997828,, +,,,,,,,0.6545689999999937,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,candidate,0.6563070000993321,, +,,,,,,,0.6573549999999984,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,candidate,0.6653609998465981,, +,,,,,,,0.6499660000000018,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,candidate,0.6521320001411368,, +,,,,,,,0.6592660000000056,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,candidate,0.6584960001418949,, +,,,,,,,0.6438070000000101,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,candidate,0.6466730001193355,, +,,,,,,,0.6393229999999972,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,candidate,0.6409369998436887,, +,,,,,,,0.6489679999999998,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,candidate,0.6480559995907242,, +,,,,,,,0.6603190000000064,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,25440,1000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,candidate,0.6625239993809373,, +,,,,,,,0.0009350000000074576,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,candidate,0.000553999598196242,, +,,,,,,,0.0008279999999943888,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,candidate,0.000449000253865961,, +,,,,,,,0.0005450000000045696,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,candidate,0.00023499978851759806,, +,,,,,,,0.000554999999999306,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,candidate,0.0002569995558587834,, +,,,,,,,0.000554999999999306,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,candidate,0.00023400025384034961,, +,,,,,,,0.0005530000000003588,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,candidate,0.0002389997462159954,, +,,,,,,,0.0006709999999937599,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,candidate,0.0002830001903930679,, +,,,,,,,0.000783000000004197,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,candidate,0.0002439992385916412,, +,,,,,,,0.0005379999999943763,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,25440,1000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,candidate,0.00022600033844355494,, +,,,,,,,5.543461999999999,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,0,,,,32264,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,0,,,candidate,5.568603000028816,, +,,,,,,,5.611037,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,1,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,1,,,candidate,5.631747000734322,, +,,,,,,,6.13713099999999,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,2,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,2,,,candidate,6.466331999945396,, +,,,,,,,5.539058999999985,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,3,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,3,,,candidate,5.614085999695817,, +,,,,,,,5.654732999999995,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,4,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,4,,,candidate,5.687279999619932,, +,,,,,,,5.577606000000013,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,5,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,5,,,candidate,5.62616600018373,, +,,,,,,,5.592268000000011,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,6,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,6,,,candidate,5.6222080002044095,, +,,,,,,,5.887521999999978,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,7,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,7,,,candidate,5.9249400001135655,, +,,,,,,,5.527957,b9166f784d01e36cc12068f9cb4299d33e92833eee4450cd210dea67be5fc22e,,,,,,,8,,,,32356,5000,,,,,,,,,,,,,,routine_completion,,50,cpu,,,8,,,candidate,5.555169999752252,, +,,,,,,,8.771314000000002,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,0,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,0,,,candidate,8.795855000244046,, +,,,,,,,8.432198000000001,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,1,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,1,,,candidate,8.478585999910138,, +,,,,,,,8.695994000000013,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,2,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,2,,,candidate,8.730448000278557,, +,,,,,,,8.758038999999995,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,3,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,3,,,candidate,8.78803199975664,, +,,,,,,,8.655928000000007,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,4,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,4,,,candidate,8.680679000462987,, +,,,,,,,8.595374999999988,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,5,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,5,,,candidate,8.629121000012674,, +,,,,,,,8.590711,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,6,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,6,,,candidate,8.632701000351517,, +,,,,,,,8.495664000000014,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,7,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,7,,,candidate,8.524515000317479,, +,,,,,,,8.723395999999967,49cbaaf853455d07fa17c12f09038071476fa7d95069b43ce0cbdf0bc74dc9a8,,,,,,,8,,,,32356,5000,,,,,,,,,,,,,,table_completion,,50,cpu,,,8,,,candidate,8.752996999646712,, +,,,,,,,3.235739999999987,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,0,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,0,,,candidate,3.2541560003664927,, +,,,,,,,6.689730000000004,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,1,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,1,,,candidate,6.725508999807062,, +,,,,,,,3.3861820000000153,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,2,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,2,,,candidate,3.4037879995594267,, +,,,,,,,3.2054460000000007,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,3,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,3,,,candidate,3.2200629993894836,, +,,,,,,,3.399222000000035,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,4,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,4,,,candidate,3.442692000135139,, +,,,,,,,3.4204369999999984,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,5,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,5,,,candidate,3.4401430002617417,, +,,,,,,,3.2318029999999776,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,6,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,6,,,candidate,3.2549329998801113,, +,,,,,,,3.4050869999999733,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,7,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,7,,,candidate,3.4844309993786737,, +,,,,,,,3.202694000000006,180f0262a9e4bb31ef544f794265fa407839c7f3a63f5a0c1907bd8d51e54984,,,,,,,8,,,,32356,5000,,,,,,,,,,,,,,unrelated_completion,,50,cpu,,,8,,,candidate,3.2509100001334446,, +,,,,,,,0.0012140000000271378,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,0,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,0,,,candidate,0.0006849995770608075,, +,,,,,,,0.0008459999999987922,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,1,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,1,,,candidate,0.00040200029616244137,, +,,,,,,,0.0007039999999625124,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,2,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,2,,,candidate,0.0003209997885278426,, +,,,,,,,0.0006780000000317088,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,3,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,3,,,candidate,0.000285999703919515,, +,,,,,,,0.000570999999949251,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,4,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,4,,,candidate,0.0002449996827635914,, +,,,,,,,0.000673000000006585,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,5,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,5,,,candidate,0.0004200001058052294,, +,,,,,,,0.000583000000053957,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,6,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,6,,,candidate,0.0002570004653534852,, +,,,,,,,0.0006000000000172534,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,7,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,7,,,candidate,0.00028700014809146523,, +,,,,,,,0.0023189999999728705,4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945,,,,,,,8,,,,32356,5000,,,,,,,,,,,,,,blank_completion,,0,cpu,,,8,,,candidate,0.00024400014808634296,, +,,,,1.9496830000000076,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,49088,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,0,,4140,baseline,13.627903999804403,, +,,,,126.34906699999998,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,0,True,39,baseline,141.5187889997469,, +,,,,2.959051999999962,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,0,,226,baseline,4.290977999517054,, +,,,,0.15410700000001443,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,0,,13,baseline,0.6592699992324924,, +,,,,2.5832750000000515,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,0,True,50,baseline,3.608426999562653,, +,,,,66.42030799999998,,,,,3.5654929997690488,1637817,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,0,True,52,baseline,69.02726699991035,, +,,,,0.5061639999999756,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,0,,240,baseline,2.4647770005685743,, +,,,,1.978731999999983,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,0,,5960,baseline,12.326801000199339,, +,,,,118.30629000000003,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,1,True,39,baseline,120.43380999966757,, +,,,,0.5335229999999802,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,1,,240,baseline,1.9498960000419174,, +,,,,2.691308000000059,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,1,,226,baseline,4.102785000213771,, +,,,,67.5716099999999,,,,,4.847786000027554,1900544,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,1,True,52,baseline,74.24050700046791,, +,,,,4.8256939999999915,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,1,,5960,baseline,32.90739600015513,, +,,,,3.148834999999961,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,1,,4140,baseline,22.93482999994012,, +,,,,2.727785000000038,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,1,True,50,baseline,5.409308999333007,, +,,,,0.2067259999999349,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60360,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,1,,13,baseline,0.7161439998526475,, +,,,,3.9027289999999937,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,2,,5960,baseline,24.390214000050037,, +,,,,2.612896000000031,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,2,,4140,baseline,16.78285300022253,, +,,,,0.15505900000001294,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,2,,13,baseline,0.49805600065155886,, +,,,,0.39757700000009333,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,2,,226,baseline,1.4965829996071989,, +,,,,72.34359199999996,,,,,3.852040000310808,3375104,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,2,True,52,baseline,83.20673299931514,, +,,,,3.0581100000000028,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,2,True,50,baseline,4.470584000046074,, +,,,,133.83339100000003,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,2,True,39,baseline,144.94640000066283,, +,,,,0.5141250000000319,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60360,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,2,,240,baseline,2.057736999631743,, +,,,,123.88103100000004,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,3,True,39,baseline,125.88558000061312,, +,,,,2.5338150000000503,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,3,,226,baseline,3.9459030003854423,, +,,,,1.4643699999999926,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,3,,4140,baseline,10.39620399933483,, +,,,,0.657169000000013,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,3,,240,baseline,2.0848439999099355,, +,,,,0.14622699999999877,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,3,,13,baseline,0.5281230005493853,, +,,,,2.7305699999998767,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,3,True,50,baseline,3.3130500005427166,, +,,,,2.8090509999998403,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,3,,5960,baseline,17.48068099914235,, +,,,,66.763162,,,,,5.055120999713836,2162688,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,3,True,52,baseline,70.55669200053671,, +,,,,60.39131499999995,,,,,3.6164780003673513,393216,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,4,True,52,baseline,63.00486100008129,, +,,,,1.761012999999867,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,4,,4140,baseline,11.497858999973687,, +,,,,0.8072789999999941,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,4,,240,baseline,2.638042999933532,, +,,,,3.1717030000000257,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,4,,5960,baseline,19.1840460001913,, +,,,,117.89100799999997,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,4,True,39,baseline,120.23360500006675,, +,,,,2.5430349999999713,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,4,,226,baseline,3.947076999793353,, +,,,,2.3706910000000914,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,4,True,50,baseline,3.2991960006256704,, +,,,,0.33315400000000217,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60360,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,4,,13,baseline,1.1612369999056682,, +,,,,1.6592599999998292,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60360,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,5,,4140,baseline,9.911465000186581,, +,,,,2.7145060000000054,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60360,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,5,,5960,baseline,16.471002999423945,, +,,,,2.8799820000000587,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60360,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,5,True,50,baseline,4.691112000728026,, +,,,,66.65670299999982,,,,,4.860529000325187,2310144,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60360,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,5,True,52,baseline,70.99841499984905,, +,,,,0.36954899999996904,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60360,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,5,,226,baseline,1.676994000263221,, +,,,,109.4234300000001,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60436,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,5,True,39,baseline,117.19124800038117,, +,,,,2.2442940000000355,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60436,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,5,,13,baseline,2.822571000251628,, +,,,,0.48548299999984224,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60436,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,5,,240,baseline,2.2445529994001845,, +,,,,3.0103139999999584,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60436,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,6,True,50,baseline,3.7658719993487466,, +,,,,122.55977099999993,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,6,True,39,baseline,130.61709399971733,, +,,,,5.845110999999958,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,6,,5960,baseline,33.2642270004726,, +,,,,0.20959899999994924,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,6,,13,baseline,0.7804249999026069,, +,,,,0.4642420000000591,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,6,,226,baseline,1.5432800000780844,, +,,,,64.123484,,,,,3.9663400002609706,1720320,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,6,True,52,baseline,66.71989400001621,, +,,,,0.6959680000000468,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,6,,240,baseline,2.275363000080688,, +,,,,1.409186999999923,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60472,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,6,,4140,baseline,10.623489999488811,, +,,,,0.6109290000000378,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60472,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,7,,240,baseline,2.1202469997660955,, +,,,,109.51923699999999,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,7,True,39,baseline,111.26201099978061,, +,,,,2.2110950000000518,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,7,,226,baseline,3.458918999967864,, +,,,,0.1702999999999566,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,7,,13,baseline,0.5939929997111904,, +,,,,2.6445219999999825,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,7,,5960,baseline,16.28640099988843,, +,,,,1.868589000000087,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,7,,4140,baseline,11.697666000145546,, +,,,,2.989906000000042,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,7,True,50,baseline,3.7437789997056825,, +,,,,60.34316999999989,,,,,5.5771970000932924,983040,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60504,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,7,True,52,baseline,64.30035900029907,, +,,,,106.65905699999989,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,8,True,39,baseline,107.79639300017152,, +,,,,3.861145999999982,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,8,,5960,baseline,17.383624999638414,, +,,,,0.11943199999997489,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,8,,13,baseline,0.4534270001386176,, +,,,,0.439265000000022,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,8,,226,baseline,1.570178000292799,, +,,,,1.640766999999821,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,8,,4140,baseline,11.466119000033359,, +,,,,71.32765199999969,,,,,3.651949000413879,2981888,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,8,True,52,baseline,75.21409800028778,, +,,,,0.6560010000002947,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,8,,240,baseline,2.1079090001876466,, +,,,,3.248430000000191,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60508,,,0.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,8,True,50,baseline,5.142331000570266,, +,,,,3.7366269999999924,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,49152,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,0,,4140,baseline,837.9680570005803,, +,,,,128.476802,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,0,True,39,baseline,181.68322800011083,, +,,,,2.7697179999999766,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,0,,226,baseline,44.57276500033913,, +,,,,0.2361479999999916,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,0,,13,baseline,41.206074000001536,, +,,,,3.171410000000041,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,0,True,50,baseline,44.6657940001387,, +,,,,70.15616499999999,,,,,44.29374499977712,851968,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,0,True,52,baseline,159.84463699987828,, +,,,,1.1941309999999872,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,0,,240,baseline,226.61456700006966,, +,,,,7.267326000000018,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,0,,,,60208,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,0,,5960,baseline,1671.601176999502,, +,,,,106.48615100000004,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,1,True,39,baseline,149.91813699998602,, +,,,,1.0373849999999463,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,1,,240,baseline,226.50888000043778,, +,,,,2.6655250000000574,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,1,,226,baseline,44.33585700007825,, +,,,,67.36376199999994,,,,,45.69071000059921,1015808,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,1,True,52,baseline,163.1946240004254,, +,,,,6.597524999999993,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,1,,5960,baseline,1656.9875320001302,, +,,,,3.4179330000000396,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,1,,4140,baseline,824.6928039998238,, +,,,,2.080729999999975,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,1,True,50,baseline,43.13026399995579,, +,,,,0.2602160000000353,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,1,,,,60208,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,1,,13,baseline,41.185533000316354,, +,,,,7.889345999999908,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,2,,5960,baseline,1662.2274390001621,, +,,,,4.675880000000077,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,2,,4140,baseline,828.0446079998001,, +,,,,0.15750999999997184,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,2,,13,baseline,41.053705000194896,, +,,,,0.4769920000000649,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,2,,226,baseline,42.22393799955171,, +,,,,46.26916599999997,,,,,43.417926999609335,2473984,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,2,True,52,baseline,148.32404000026145,, +,,,,1.9447320000000046,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,2,True,50,baseline,43.213125999500335,, +,,,,86.35483899999996,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,2,True,39,baseline,136.2545419997332,, +,,,,1.3001689999999622,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,2,,,,60208,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,2,,240,baseline,227.69036999943637,, +,,,,114.89757299999992,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,3,True,39,baseline,157.53483499975118,, +,,,,2.1829299999999163,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,3,,226,baseline,43.67876400010573,, +,,,,4.44110200000003,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,3,,4140,baseline,829.917213999579,, +,,,,1.4529209999999404,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,3,,240,baseline,226.8791249998685,, +,,,,0.1795709999999895,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,3,,13,baseline,41.054799999983516,, +,,,,3.006948999999981,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,3,True,50,baseline,44.326877999992575,, +,,,,7.836642000000005,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,3,,5960,baseline,1662.6376469994284,, +,,,,65.40528400000012,,,,,44.09549699994386,425984,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,3,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,3,True,52,baseline,160.04858199994487,, +,,,,45.54725000000004,,,,,43.32667800008494,753664,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60208,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,4,True,52,baseline,159.45540600023378,, +,,,,4.5862369999998265,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60208,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,4,,4140,baseline,837.3867499994958,, +,,,,1.2618340000001282,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60208,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,4,,240,baseline,226.04905600019265,, +,,,,6.965391999999904,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60208,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,4,,5960,baseline,1658.0716290000055,, +,,,,81.88531599999993,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60228,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,4,True,39,baseline,132.27439700040122,, +,,,,2.7916460000001475,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60228,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,4,,226,baseline,44.68916099995113,, +,,,,2.1198680000000802,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60228,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,4,True,50,baseline,44.49475199999142,, +,,,,0.30843699999993923,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,4,,,,60228,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,4,,13,baseline,41.81403300026432,, +,,,,4.557860000000025,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60228,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,5,,4140,baseline,828.2684050000171,, +,,,,9.691555000000074,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60228,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,5,,5960,baseline,1652.0406820000062,, +,,,,2.971470999999948,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60228,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,5,True,50,baseline,44.48269499971502,, +,,,,69.12223000000006,,,,,46.11431499961327,2572288,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60228,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,5,True,52,baseline,153.26133000053233,, +,,,,0.5330019999998381,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60228,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,5,,226,baseline,42.07911199955561,, +,,,,106.33683000000005,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60236,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,5,True,39,baseline,148.51495000038994,, +,,,,2.0021120000000003,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60236,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,5,,13,baseline,43.05338199992548,, +,,,,1.3370259999998524,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,5,,,,60236,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,5,,240,baseline,227.43838499991398,, +,,,,2.999774000000066,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,6,True,50,baseline,44.20192900033726,, +,,,,109.49732499999998,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,6,True,39,baseline,155.95739299988054,, +,,,,9.442766000000047,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,6,,5960,baseline,1657.8025749995504,, +,,,,0.18516800000001332,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,6,,13,baseline,41.25268000007054,, +,,,,0.3702580000000122,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,6,,226,baseline,41.707980999490246,, +,,,,50.68777099999999,,,,,44.91218599923741,2818048,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,6,True,52,baseline,156.59218699966004,, +,,,,1.469712000000012,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,6,,240,baseline,227.30601700004627,, +,,,,4.54749600000004,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,6,,,,60236,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,6,,4140,baseline,833.6586920004265,, +,,,,1.1331569999999402,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60236,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,7,,240,baseline,225.776623999991,, +,,,,107.80388899999993,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,7,True,39,baseline,156.7446529998051,, +,,,,3.4058759999999744,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,7,,226,baseline,44.72389300008217,, +,,,,0.24575800000015136,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,7,,13,baseline,41.03710500021407,, +,,,,7.587714999999884,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,7,,5960,baseline,1663.0766700000095,, +,,,,3.896716000000078,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,7,,4140,baseline,842.4254359997576,, +,,,,3.371376000000037,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,7,True,50,baseline,44.64670800007298,, +,,,,69.02183399999996,,,,,45.99851300008595,2490368,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,7,,,,60260,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,7,True,52,baseline,154.8858840005778,, +,,,,113.15475399999997,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,1000,13439025,buffered_cap_1000,,,network,,,8,True,39,baseline,158.1214939997153,, +,,,,8.88079399999997,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,,7360,metadata_per_table,,,network,20,,8,,5960,baseline,1660.8558600000833,, +,,,,0.28106000000005515,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,,56,reuse_query,,,network,,,8,,13,baseline,41.05850899941288,, +,,,,0.5821579999998328,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,,2399,metadata_batch,,,network,20,,8,,226,baseline,42.19141399971704,, +,,,,4.188064999999908,,80,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,,5800,metadata_one_query_per_table,,,network,20,,8,,4140,baseline,834.3010569997205,, +,,,,44.67668199999997,,,,,44.9601159998565,1097728,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,1000,13439081,stream_fetch_cleanup,,,network,,,8,True,52,baseline,152.13410799970006,, +,,,,1.246934999999949,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,,408,connect_query_close,,,network,,,8,,240,baseline,225.82759100077965,, +,,,,1.949754999999831,,,,,,,,,mariadb:11,sha256:ffd3e6e3af27dfb3fa12eb467205d9fafab29fa1c180ade7fc458aa063bfa73b,8,,,,60264,,,20.0,,,,,,mariadb,,,,1000,267292,server_limit_1001,,,network,,,8,True,50,baseline,42.904894000457716,, +,,,,2.4495530000000487,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,52064,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,0,,4140,baseline,17.043122999893967,, +,,,,122.76383800000002,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,0,True,39,baseline,127.90653200045199,, +,,,,3.198827000000015,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,0,,226,baseline,5.005300000448187,, +,,,,0.17899600000004234,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,0,,13,baseline,0.6424450002668891,, +,,,,2.5942840000000023,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,0,True,50,baseline,3.2863629994608345,, +,,,,67.992104,,,,,3.926852999939001,1523712,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,0,True,52,baseline,70.82215099944733,, +,,,,0.57463499999999,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,0,,231,baseline,2.2290639999482664,, +,,,,3.5334509999999653,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62408,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,0,,5960,baseline,30.715199999576726,, +,,,,112.686795,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,1,True,39,baseline,116.01184600021952,, +,,,,0.8701190000000025,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,1,,231,baseline,3.2656869998390903,, +,,,,2.7075509999999747,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,1,,226,baseline,4.517192999628605,, +,,,,72.85560300000004,,,,,4.845833000217681,2473984,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,1,True,52,baseline,86.59488700050133,, +,,,,3.3888549999999684,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,1,,5960,baseline,40.16989499996271,, +,,,,2.2294200000000375,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,1,,4140,baseline,16.56779700078914,, +,,,,2.959263999999906,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,1,True,50,baseline,3.8620670002273982,, +,,,,0.21373499999999268,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62488,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,1,,13,baseline,0.6967529998291866,, +,,,,5.11698599999999,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,2,,5960,baseline,43.78672200073197,, +,,,,3.1831539999999103,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,2,,4140,baseline,25.081214999772783,, +,,,,0.1632309999999304,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,2,,13,baseline,0.5893570005355286,, +,,,,0.4347180000000561,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,2,,226,baseline,2.724666000176512,, +,,,,72.36067099999998,,,,,8.488594000482408,3424256,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,2,True,52,baseline,79.41075100006856,, +,,,,2.8766169999999702,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,2,True,50,baseline,3.9342729996860726,, +,,,,120.28628699999999,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,2,True,39,baseline,122.7749589997984,, +,,,,0.5170310000000011,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62488,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,2,,231,baseline,1.8408910000289325,, +,,,,122.43761799999997,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,3,True,39,baseline,127.11662400033674,, +,,,,2.4971160000000214,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,3,,226,baseline,4.085613000825106,, +,,,,2.1767609999999715,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,3,,4140,baseline,15.799720999893907,, +,,,,0.6123959999999595,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,3,,231,baseline,2.021375999902375,, +,,,,0.17917899999997378,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,3,,13,baseline,0.7759399995848071,, +,,,,2.866390999999968,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,3,True,50,baseline,3.752255999643239,, +,,,,4.283349000000047,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,3,,5960,baseline,36.51849600009882,, +,,,,68.9592189999999,,,,,3.422716000386572,2146145,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,3,True,52,baseline,72.76412600003823,, +,,,,60.56312500000005,,,,,3.3818369993241504,1130496,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,4,True,52,baseline,64.60536499980662,, +,,,,1.6997119999999644,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,4,,4140,baseline,14.205722000042442,, +,,,,0.8242659999999624,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,4,,231,baseline,4.20633799967618,, +,,,,3.9157100000000167,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,4,,5960,baseline,31.719075000182784,, +,,,,118.702144,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,4,True,39,baseline,122.43076599952474,, +,,,,2.4573359999999767,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,4,,226,baseline,4.506416000367608,, +,,,,2.935686999999909,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,4,True,50,baseline,3.7755339999421267,, +,,,,0.20792700000016318,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62488,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,4,,13,baseline,0.6745709997630911,, +,,,,3.135161999999969,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,5,,4140,baseline,27.295992999825103,, +,,,,5.97270399999994,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,5,,5960,baseline,56.74854100016091,, +,,,,2.69409899999995,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,5,True,50,baseline,3.62879200019961,, +,,,,75.61598000000002,,,,,7.77273600033368,1753088,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,5,True,52,baseline,88.31594100047369,, +,,,,0.4597840000000186,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,5,,226,baseline,2.2892890001458,, +,,,,128.453288,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,5,True,39,baseline,143.6833130001105,, +,,,,2.2550019999998394,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,5,,13,baseline,3.659021000203211,, +,,,,0.8603229999999407,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62488,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,5,,231,baseline,3.4852529997806414,, +,,,,3.637370999999945,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62488,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,6,True,50,baseline,6.491906000519521,, +,,,,127.06943799999992,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,6,True,39,baseline,142.10933800040948,, +,,,,5.4869570000000145,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,6,,5960,baseline,32.121669999469304,, +,,,,0.18105299999993107,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,6,,13,baseline,0.6656979994659196,, +,,,,0.4355409999998727,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,6,,226,baseline,1.8995669997821096,, +,,,,72.30929600000002,,,,,7.499479999751202,1785856,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,6,True,52,baseline,79.38194100006513,, +,,,,0.4726710000000356,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,6,,231,baseline,1.9236119997003698,, +,,,,2.2714839999999903,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62496,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,6,,4140,baseline,15.09990900012781,, +,,,,0.5856129999999293,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62496,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,7,,231,baseline,1.9989570000689127,, +,,,,118.70113800000004,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,7,True,39,baseline,123.98058500002662,, +,,,,2.3234250000001566,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,7,,226,baseline,3.9081739996618126,, +,,,,0.17510600000014698,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,7,,13,baseline,0.6308920001174556,, +,,,,3.8618569999999686,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,7,,5960,baseline,32.3502239998561,, +,,,,2.474122999999828,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,7,,4140,baseline,20.41701399957674,, +,,,,2.9721519999998947,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,7,True,50,baseline,3.6073310002393555,, +,,,,67.34439700000006,,,,,3.632756000115478,2818048,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62580,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,7,True,52,baseline,71.26722799966956,, +,,,,108.82921499999986,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,8,True,39,baseline,110.17372900005284,, +,,,,6.601965999999848,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,8,,5960,baseline,48.74346199994761,, +,,,,0.16322899999998697,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,8,,13,baseline,0.6828659998063813,, +,,,,0.4349200000000053,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,8,,226,baseline,2.1074070000395295,, +,,,,2.3107919999998394,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,8,,4140,baseline,18.08579800035659,, +,,,,74.77044,,,,,5.156360000000859,1589248,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,8,True,52,baseline,87.79228500043246,, +,,,,0.4892239999998438,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,8,,231,baseline,2.1425599998110556,, +,,,,2.6842179999997384,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62580,,,0.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,8,True,50,baseline,4.155944999183703,, +,,,,3.7296099999999943,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,51800,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,0,,4140,baseline,837.7198759999374,, +,,,,119.87383300000002,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,0,True,39,baseline,163.16324600029475,, +,,,,2.4499139999999975,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,0,,226,baseline,44.59125299945299,, +,,,,0.20662300000001688,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,0,,13,baseline,41.52900600001885,, +,,,,2.5710820000000023,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,0,True,50,baseline,43.927048000114155,, +,,,,72.687002,,,,,44.45009499977459,1523712,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,0,True,52,baseline,168.0599239998628,, +,,,,0.9105450000000403,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,0,,231,baseline,185.51556399961555,, +,,,,6.894343000000025,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,0,,,,62276,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,0,,5960,baseline,1675.1060219994542,, +,,,,117.11974400000003,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,1,True,39,baseline,164.99981700053468,, +,,,,0.7936330000000158,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,1,,231,baseline,184.81926200001908,, +,,,,2.9799359999999053,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,1,,226,baseline,45.1261810003416,, +,,,,70.38859500000005,,,,,46.38835100013239,1392640,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,1,True,52,baseline,165.8103210002082,, +,,,,6.883008000000079,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,1,,5960,baseline,1675.5627370002912,, +,,,,3.6839750000000615,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,1,,4140,baseline,833.5855089999313,, +,,,,2.9261590000000393,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,1,True,50,baseline,44.16690200014273,, +,,,,0.2558299999999569,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,1,,,,62276,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,1,,13,baseline,41.0636019996673,, +,,,,6.939045999999949,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,2,,5960,baseline,1673.0309410004338,, +,,,,3.7343180000000142,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,2,,4140,baseline,838.0291670000588,, +,,,,0.19283199999997613,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,2,,13,baseline,41.053060999729496,, +,,,,0.43968700000007743,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,2,,226,baseline,42.42703199997777,, +,,,,67.02600299999995,,,,,44.225102999917,2031616,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,2,True,52,baseline,150.50749700003507,, +,,,,2.4220710000000256,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,2,True,50,baseline,43.600619999779155,, +,,,,106.04776299999996,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,2,True,39,baseline,156.8932299996959,, +,,,,0.8858979999999406,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,2,,,,62276,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,2,,231,baseline,186.4885469994988,, +,,,,132.564586,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,3,True,39,baseline,179.30385199997545,, +,,,,2.7312760000000047,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,3,,226,baseline,45.01692299982096,, +,,,,4.13771900000004,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,3,,4140,baseline,849.1025579996858,, +,,,,0.9652369999999522,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,3,,231,baseline,196.72794100006286,, +,,,,0.19660100000007397,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,3,,13,baseline,41.96700800002873,, +,,,,3.723499000000019,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,3,True,50,baseline,49.49085199950787,, +,,,,7.537714000000029,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,3,,5960,baseline,1702.2137300000395,, +,,,,84.11703800000004,,,,,65.97577200045635,1835008,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,3,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,3,True,52,baseline,208.52563199969154,, +,,,,84.39367500000006,,,,,47.197108000545995,1015808,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62276,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,4,True,52,baseline,175.332177999735,, +,,,,4.0692229999999,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62276,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,4,,4140,baseline,842.2320939998826,, +,,,,1.0969919999999078,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62276,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,4,,231,baseline,188.31976700039377,, +,,,,7.03395699999998,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62276,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,4,,5960,baseline,1672.9967820001548,, +,,,,117.38265499999989,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,4,True,39,baseline,161.76321100010682,, +,,,,2.298966999999985,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62476,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,4,,226,baseline,44.30936000062502,, +,,,,2.85357399999997,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62476,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,4,True,50,baseline,44.043102000614454,, +,,,,0.24555999999997802,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,4,,,,62476,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,4,,13,baseline,41.17997100001958,, +,,,,3.707702000000035,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,5,,4140,baseline,835.8901640003751,, +,,,,6.92390899999995,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,5,,5960,baseline,1674.5586280003408,, +,,,,2.9113419999999834,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,5,True,50,baseline,44.31444200054102,, +,,,,67.10710800000008,,,,,44.84870999931445,1507328,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,5,True,52,baseline,161.23064200019144,, +,,,,0.4167340000000852,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,5,,226,baseline,42.4046879998059,, +,,,,114.59147799999991,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,5,True,39,baseline,159.2453929997646,, +,,,,2.1207530000000308,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,5,,13,baseline,43.545990999518835,, +,,,,0.8963300000000007,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,5,,,,62476,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,5,,231,baseline,185.34774399995513,, +,,,,2.9330680000001497,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,6,True,50,baseline,44.16488199967716,, +,,,,121.03431499999995,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,6,True,39,baseline,171.14625999965938,, +,,,,8.847700000000014,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,6,,5960,baseline,1672.215540000252,, +,,,,0.2419840000000839,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,6,,13,baseline,44.15643800075486,, +,,,,0.43931799999996635,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,6,,226,baseline,42.39209099978325,, +,,,,67.68978000000003,,,,,45.68973999994341,1212416,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,6,True,52,baseline,160.2926670002489,, +,,,,0.8472479999999116,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,6,,231,baseline,184.75295600001118,, +,,,,3.992044999999944,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,6,,,,62476,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,6,,4140,baseline,838.5984440001266,, +,,,,0.9280259999999707,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,7,,231,baseline,185.86701300046116,, +,,,,116.75498399999995,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,7,True,39,baseline,167.28615499960142,, +,,,,2.2566529999998863,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,7,,226,baseline,44.17957700024999,, +,,,,0.18803299999992085,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,7,,13,baseline,42.0184380000137,, +,,,,7.001821000000019,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,7,,5960,baseline,1669.9807490003877,, +,,,,3.9780929999999604,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,7,,4140,baseline,837.4807990003319,, +,,,,2.8504590000000274,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,7,True,50,baseline,44.07667899977241,, +,,,,66.99739399999993,,,,,45.17156500060082,1196032,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,7,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,7,True,52,baseline,160.8221920005235,, +,,,,113.09836699999987,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439025,buffered_cap_1000,,,network,,,8,True,39,baseline,158.2118320002337,, +,,,,8.63551100000004,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,,6720,metadata_per_table,,,network,20,,8,,5960,baseline,1670.2242380006282,, +,,,,0.19427099999980157,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,,56,reuse_query,,,network,,,8,,13,baseline,41.028060999451554,, +,,,,0.4823140000000947,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,,2400,metadata_batch,,,network,20,,8,,226,baseline,42.96685900044395,, +,,,,3.872612999999969,,80,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,,5840,metadata_one_query_per_table,,,network,20,,8,,4140,baseline,836.4204719991903,, +,,,,67.44291899999988,,,,,45.44457300016802,1998848,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,1000,13439081,stream_fetch_cleanup,,,network,,,8,True,52,baseline,156.20049399967684,, +,,,,0.8546049999997862,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,,247,connect_query_close,,,network,,,8,,231,baseline,185.02887900012865,, +,,,,2.9635849999998243,,,,,,,,,mysql:8.0,sha256:95f1309164f3465ca13aa0094587ee7322877800e801bb8430ac599ed803fb63,8,,,,62476,,,20.0,,,,,,mysql,,,,1000,267292,server_limit_1001,,,network,,,8,True,50,baseline,44.192076999934216,, +,,,,1.1939219999999862,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,39124,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,0,,15120,baseline,96.93037099987123,, +,,,,11.409507000000014,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,0,True,40,baseline,25.69303200016293,, +,,,,0.13991999999998783,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,0,,755,baseline,13.586199999735982,, +,,,,0.08949599999999447,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,0,,14,baseline,0.7153480000852142,, +,,,,0.7814849999999984,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,0,True,51,baseline,1.705196999864711,, +,,,,0.5384230000000101,,,,,2.210197999374941,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,0,True,211,baseline,2.989916999467823,, +,,,,2.927898999999984,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,0,,214,baseline,6.812020000324992,, +,,,,3.3611439999999826,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55508,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,0,,9180,baseline,101.67090699997061,, +,,,,11.310039000000021,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,1,True,40,baseline,35.41744500034838,, +,,,,3.085463999999982,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,1,,214,baseline,9.676280999883602,, +,,,,0.14366299999998833,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,1,,755,baseline,13.450427999487147,, +,,,,0.6356140000000066,,,,,1.9357419996595127,270379,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,1,True,211,baseline,3.561028999683913,, +,,,,3.6677599999999924,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,1,,9180,baseline,108.88791500019579,, +,,,,1.9205750000000077,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,1,,15120,baseline,136.3120739997612,, +,,,,0.6528410000000151,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,1,True,51,baseline,1.7227910002475255,, +,,,,0.09877999999999276,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55688,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,1,,14,baseline,0.5633509999825037,, +,,,,2.856757999999987,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,2,,9180,baseline,95.03981399939221,, +,,,,1.6820359999999979,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,2,,15120,baseline,119.99788800039823,, +,,,,0.11025400000000407,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,2,,14,baseline,0.5667519999406068,, +,,,,0.15575800000000584,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,2,,755,baseline,14.659942999969644,, +,,,,0.43765099999998336,,,,,1.8284699999639997,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,2,True,211,baseline,2.28661000073771,, +,,,,0.6229719999999994,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55688,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,2,True,51,baseline,1.5154900002016802,, +,,,,11.450286000000004,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,2,True,40,baseline,22.917940999832354,, +,,,,3.005886999999985,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,2,,214,baseline,7.666652999432699,, +,,,,11.156949,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,3,True,40,baseline,22.550022000359604,, +,,,,0.1591209999999843,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,3,,755,baseline,14.325459999781742,, +,,,,1.3352299999999928,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,3,,15120,baseline,106.55865900025674,, +,,,,2.8939799999999902,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,3,,214,baseline,6.5842720005093724,, +,,,,0.09150800000001791,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,3,,14,baseline,0.472114000331203,, +,,,,0.7144490000000059,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,3,True,51,baseline,1.4018239999131765,, +,,,,2.653763000000003,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,3,,9180,baseline,89.00804199947743,, +,,,,0.41720000000000645,,,,,1.5534140002273489,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,3,True,211,baseline,2.0070069995199447,, +,,,,0.4263809999999757,,,,,1.6028820000428823,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,4,True,211,baseline,2.03651300034835,, +,,,,1.436737999999993,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,4,,15120,baseline,110.80640700038202,, +,,,,3.1129209999999907,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,4,,214,baseline,8.78552700032742,, +,,,,3.239921000000007,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,4,,9180,baseline,100.24902199984354,, +,,,,11.726698000000008,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,4,True,40,baseline,32.36764699977357,, +,,,,0.1706350000000023,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,4,,755,baseline,13.885102999665833,, +,,,,0.6489100000000025,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,4,True,51,baseline,2.041831000497041,, +,,,,0.08840500000001361,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,4,,14,baseline,0.8486780006933259,, +,,,,1.7010550000000069,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,5,,15120,baseline,119.18997999964631,, +,,,,3.4866350000000157,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,5,,9180,baseline,102.34718199990311,, +,,,,0.6466169999999605,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,5,True,51,baseline,1.5031949997137417,, +,,,,0.42001600000002304,,,,,2.1545419995163684,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,5,True,211,baseline,2.87224600015179,, +,,,,0.15074799999997834,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,5,,755,baseline,15.218595999613171,, +,,,,12.038658000000035,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,5,True,40,baseline,26.21001000079559,, +,,,,0.09566700000002148,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,5,,14,baseline,0.497431000439974,, +,,,,3.0862580000000084,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,5,,214,baseline,7.936201999655168,, +,,,,0.7020919999999875,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,6,True,51,baseline,2.0864389998678234,, +,,,,11.44298199999999,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,6,True,40,baseline,27.80324200011819,, +,,,,3.098693000000041,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,6,,9180,baseline,96.77414799989492,, +,,,,0.10917600000004413,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,6,,14,baseline,0.5438790003609029,, +,,,,0.1437400000000033,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,6,,755,baseline,14.209642999958305,, +,,,,0.6165140000000124,,,,,1.803741000003356,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,6,True,211,baseline,2.396350999333663,, +,,,,3.0281770000000208,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,6,,214,baseline,7.870397999795387,, +,,,,1.4632799999999557,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,6,,15120,baseline,110.12776100051269,, +,,,,2.9286900000000116,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,7,,214,baseline,8.206066999264294,, +,,,,11.091021000000033,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,7,True,40,baseline,22.381431999747292,, +,,,,0.15658899999998477,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,7,,755,baseline,15.277500000593136,, +,,,,0.09869299999998304,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,7,,14,baseline,0.5035269996369607,, +,,,,2.977985999999988,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,7,,9180,baseline,95.30875600012223,, +,,,,1.4316970000000095,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,7,,15120,baseline,102.05970100014383,, +,,,,0.6709190000000476,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,7,True,51,baseline,1.4508150006804499,, +,,,,0.5027820000000349,,,,,1.6171140005099005,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,7,True,211,baseline,2.370528000028571,, +,,,,10.815768000000004,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,8,True,40,baseline,18.42551099980483,, +,,,,2.1713890000000236,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,8,,9180,baseline,79.82055499996932,, +,,,,0.12574200000003977,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,8,,14,baseline,0.611983999988297,, +,,,,0.14347200000003335,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,8,,755,baseline,15.80471800025407,, +,,,,1.1150329999999875,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,8,,15120,baseline,99.15076800007228,, +,,,,0.5385709999999877,,,,,1.6696510001565912,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,8,True,211,baseline,2.4047790002441616,, +,,,,2.8282740000000195,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,8,,214,baseline,7.988705000570917,, +,,,,0.6576099999999752,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55768,,,0.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,8,True,51,baseline,1.4076580000619288,, +,,,,2.763558999999999,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,38908,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,0,,15120,baseline,920.3269919999002,, +,,,,11.724404000000007,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,0,True,40,baseline,110.61880799934443,, +,,,,0.20565499999999903,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,0,,755,baseline,56.56019599973661,, +,,,,0.1482770000000022,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,0,,14,baseline,41.094191999945906,, +,,,,0.8829000000000059,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,0,True,51,baseline,42.62468600063585,, +,,,,1.203937000000002,,,,,125.26264500047546,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,0,True,211,baseline,248.5710070004643,, +,,,,2.66748,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,0,,214,baseline,167.3877339999308,, +,,,,5.375315000000006,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,0,,,,55292,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,0,,9180,baseline,1724.68700599984,, +,,,,9.852442999999989,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,1,True,40,baseline,110.11148499983392,, +,,,,2.6772979999999946,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,1,,214,baseline,173.6044100007348,, +,,,,0.15762599999999405,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,1,,755,baseline,55.63110599996435,, +,,,,0.6918569999999902,,,,,125.27097400015919,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,1,True,211,baseline,249.90206900019984,, +,,,,4.315757999999975,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,1,,9180,baseline,1723.191338000106,, +,,,,2.0690200000000045,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,1,,15120,baseline,926.223168999968,, +,,,,0.7150510000000221,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,1,True,51,baseline,43.34550499970646,, +,,,,0.14770599999999745,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,1,,,,55364,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,1,,14,baseline,41.07211800055666,, +,,,,4.887831000000009,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,2,,9180,baseline,1730.6113719996574,, +,,,,2.0748680000000075,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,2,,15120,baseline,913.1202600001416,, +,,,,0.14888400000001578,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,2,,14,baseline,41.467190000730625,, +,,,,0.21386700000000647,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,2,,755,baseline,51.55905600076949,, +,,,,0.974052000000003,,,,,124.05221099925257,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,2,True,211,baseline,247.9879520005852,, +,,,,0.7443619999999984,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55364,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,2,True,51,baseline,42.35583500030771,, +,,,,10.754949000000014,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55420,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,2,True,40,baseline,111.02272199968866,, +,,,,2.580380000000021,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,2,,,,55420,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,2,,214,baseline,169.4722170004752,, +,,,,9.876417999999997,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,3,True,40,baseline,110.71399599950382,, +,,,,0.15680000000001248,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,3,,755,baseline,52.85957299929578,, +,,,,2.168422000000003,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,3,,15120,baseline,947.7633870001227,, +,,,,2.6268190000000025,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,3,,214,baseline,172.725944999911,, +,,,,0.13653399999999372,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,3,,14,baseline,40.96977900007914,, +,,,,0.741102999999993,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,3,True,51,baseline,42.339044000073045,, +,,,,4.702164000000009,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,3,,9180,baseline,1725.607301999844,, +,,,,1.025098000000002,,,,,125.68836899936286,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,3,,,,55420,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,3,True,211,baseline,249.23554599990894,, +,,,,1.0802650000000247,,,,,125.65846699999383,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55420,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,4,True,211,baseline,248.7985480001953,, +,,,,3.166514000000009,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55420,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,4,,15120,baseline,909.6802189997106,, +,,,,3.8562489999999783,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55420,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,4,,214,baseline,170.0598560000799,, +,,,,4.753112000000003,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55420,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,4,,9180,baseline,1713.4796279997317,, +,,,,10.918733999999986,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55436,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,4,True,40,baseline,110.29112199958035,, +,,,,0.17504800000001097,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55436,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,4,,755,baseline,50.81383599917899,, +,,,,0.8082989999999846,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55436,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,4,True,51,baseline,42.36755700003414,, +,,,,0.28792499999999444,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,4,,,,55436,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,4,,14,baseline,41.15268399982597,, +,,,,2.6706109999999894,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55436,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,5,,15120,baseline,924.814306999906,, +,,,,7.119908000000008,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55436,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,5,,9180,baseline,1715.2405819997512,, +,,,,0.5330800000000191,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55436,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,5,True,51,baseline,41.83474900037254,, +,,,,0.910661000000007,,,,,125.98585500018089,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55436,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,5,True,211,baseline,248.92939399978786,, +,,,,0.1999719999999927,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55436,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,5,,755,baseline,56.13070900017192,, +,,,,9.095862000000011,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55592,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,5,True,40,baseline,108.33483900023566,, +,,,,0.09807700000000197,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55592,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,5,,14,baseline,40.991295999447175,, +,,,,2.4767890000000072,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,5,,,,55592,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,5,,214,baseline,168.56518300028256,, +,,,,0.5810109999999924,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,6,True,51,baseline,41.749245000573865,, +,,,,11.311093999999994,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,6,True,40,baseline,108.74093599977641,, +,,,,5.166039000000011,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,6,,9180,baseline,1729.375734000314,, +,,,,0.12223099999997267,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,6,,14,baseline,40.865519999897515,, +,,,,0.12826099999996288,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,6,,755,baseline,51.045256000179506,, +,,,,0.897566999999988,,,,,123.97227000019484,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,6,True,211,baseline,247.41555200034782,, +,,,,3.2913840000000083,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,6,,214,baseline,170.7066710005165,, +,,,,2.263913999999978,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,6,,,,55592,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,6,,15120,baseline,923.3529019993512,, +,,,,3.089921999999967,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,7,,214,baseline,169.84396199950424,, +,,,,11.610842999999981,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,7,True,40,baseline,126.24205599968263,, +,,,,0.19878099999998122,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,7,,755,baseline,50.86416699941765,, +,,,,0.16160199999998293,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,7,,14,baseline,41.04356399966491,, +,,,,4.509089000000022,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,7,,9180,baseline,1733.1424690000858,, +,,,,1.7298370000000118,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,7,,15120,baseline,925.3401710002436,, +,,,,0.7114369999999814,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,7,True,51,baseline,42.30272600034368,, +,,,,0.6503710000000384,,,,,123.70547499995155,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,7,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,7,True,211,baseline,247.03730400051427,, +,,,,11.27046599999998,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,1000,13788972,buffered_cap_1000,,,network,,,8,True,40,baseline,110.66481699981523,, +,,,,3.8322009999999795,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,,5320,metadata_per_table,,,network,20,,8,,9180,baseline,1723.9650020001136,, +,,,,0.13743099999996566,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,,66,reuse_query,,,network,,,8,,14,baseline,40.95028999927308,, +,,,,0.16964999999996566,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,,3720,metadata_batch,,,network,20,,8,,755,baseline,47.24562799947307,, +,,,,1.8005269999999962,,80,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,,4820,metadata_one_query_per_table,,,network,20,,8,,15120,baseline,930.8157680006843,, +,,,,0.8000550000000217,,,,,124.50204600008874,274287,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274397,stream_fetch_cleanup,,,network,,,8,True,211,baseline,249.6638790007637,, +,,,,3.0437300000000223,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,,641,connect_query_close,,,network,,,8,,214,baseline,173.61668400008057,, +,,,,0.6446569999999929,,,,,,,,,postgres:16-alpine,sha256:52f87503b2fe5ad2e0d209b1a55830db42eb3ecd3eaf1b583accb0091ab30bff,8,,,,55592,,,20.0,,,,,,postgresql,,,,1000,274245,server_limit_1001,,,network,,,8,True,51,baseline,42.1992429992315,, +,,,,,,,,,,,,,,,0,,,,30916,,,,,0.11625100000001165,,,,sqlite,,,,,,reuse_select1,,,local,,,0,,,baseline,0.11738299963326426,, +,,,,,,,,,,,,,,,0,,,,30984,,,,,0.8422110000000094,,,,sqlite,,,1000,,,worker_1000,,,local,,,0,,,baseline,4.603602000315732,,1.545631999761099 +,,,,,,,,,,,,,,,0,,,,30984,,,,,0.5939360000000171,,,,sqlite,,,,,,worker_cold_select1,,,local,,,0,,,baseline,80.21040099993115,,0.8960929999375367 +,,,,,,,,,,,,,,,0,,,,30984,,,,,0.18493199999999876,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,0,,,baseline,1.009356999929878,,0.38004399993951665 +,,,,,,,,,,,,,,,0,,,,64120,,,,,29.14602899999999,,,,sqlite,,,50000,,,worker_50000,,,local,,,0,,,baseline,89.66985999995813,,45.160128999668814 +,,,,,,,,,,,,,,,0,,,,64120,,,,,34.461256999999996,,,,sqlite,,,50000,,,direct_50000,,,local,,,0,,,baseline,34.600408999722276,, +,,,,,,,,,,,,,,,0,,,,64120,,,,,0.43631900000001833,,,,sqlite,,,1000,,,direct_1000,,,local,,,0,,,baseline,0.436196999544336,, +,,,,,,,,,,,,,,,0,,,,64120,,,,,3.766864000000009,,,,sqlite,,,,,,cancellable_select1,,,local,,,0,,,baseline,3.802344999712659,, +,,,,,,,,,,,,,,,0,,,,64120,,,,,0.12754300000000773,,,,sqlite,,,,,,connect_select1_close,,,local,,,0,,,baseline,0.12737700035359012,, +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.005630000000006463,,,,sqlite,,,,,,reuse_select1,,,local,,,1,,,baseline,0.005627000064123422,, +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.09511499999997897,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,1,,,baseline,0.873525000315567,,0.3973579996454646 +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.426673999999988,,,,sqlite,,,1000,,,direct_1000,,,local,,,1,,,baseline,0.42651100011426024,, +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.46594100000002525,,,,sqlite,,,,,,worker_cold_select1,,,local,,,1,,,baseline,93.20394699989265,,1.068761999704293 +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.21194599999999064,,,,sqlite,,,,,,connect_select1_close,,,local,,,1,,,baseline,0.21188099981372943,, +,,,,,,,,,,,,,,,1,,,,64120,,,,,0.13371200000000805,,,,sqlite,,,,,,cancellable_select1,,,local,,,1,,,baseline,0.1335949991698726,, +,,,,,,,,,,,,,,,1,,,,64120,,,,,33.05880800000002,,,,sqlite,,,50000,,,direct_50000,,,local,,,1,,,baseline,33.21744999993825,, +,,,,,,,,,,,,,,,1,,,,81224,,,,,19.728282999999987,,,,sqlite,,,50000,,,worker_50000,,,local,,,1,,,baseline,81.44475300014165,,46.59528900083387 +,,,,,,,,,,,,,,,1,,,,81224,,,,,0.3872440000000088,,,,sqlite,,,1000,,,worker_1000,,,local,,,1,,,baseline,1.9840269997075666,,1.081826000699948 +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.3632559999999785,,,,sqlite,,,,,,cancellable_select1,,,local,,,2,,,baseline,0.36269200063543394,, +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.5819080000000199,,,,sqlite,,,1000,,,direct_1000,,,local,,,2,,,baseline,0.5899509997107089,, +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.6729540000000034,,,,sqlite,,,,,,worker_cold_select1,,,local,,,2,,,baseline,80.34406200022204,,1.1188020007466548 +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.014785999999988864,,,,sqlite,,,,,,reuse_select1,,,local,,,2,,,baseline,0.014743999599886592,, +,,,,,,,,,,,,,,,2,,,,81224,,,,,17.559871000000005,,,,sqlite,,,50000,,,worker_50000,,,local,,,2,,,baseline,73.19745499989949,,44.750150999789184 +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.23870100000000782,,,,sqlite,,,,,,connect_select1_close,,,local,,,2,,,baseline,0.24374000076932134,, +,,,,,,,,,,,,,,,2,,,,81224,,,,,33.154974,,,,sqlite,,,50000,,,direct_50000,,,local,,,2,,,baseline,33.28540700022131,, +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.09775400000000545,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,2,,,baseline,1.0029349996329984,,0.4148859998167609 +,,,,,,,,,,,,,,,2,,,,81224,,,,,0.1744550000000178,,,,sqlite,,,1000,,,worker_1000,,,local,,,2,,,baseline,1.6013399999792455,,0.8358880004379898 +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.016154999999962172,,,,sqlite,,,,,,reuse_select1,,,local,,,3,,,baseline,0.0161320003826404,, +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.21895099999996726,,,,sqlite,,,,,,connect_select1_close,,,local,,,3,,,baseline,0.21885199930693489,, +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.4183509999999835,,,,sqlite,,,1000,,,direct_1000,,,local,,,3,,,baseline,0.41828499979601474,, +,,,,,,,,,,,,,,,3,,,,81224,,,,,38.72942700000004,,,,sqlite,,,50000,,,direct_50000,,,local,,,3,,,baseline,38.87716000008368,, +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.2566539999999673,,,,sqlite,,,,,,cancellable_select1,,,local,,,3,,,baseline,0.26092600000993116,, +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.22152800000002637,,,,sqlite,,,1000,,,worker_1000,,,local,,,3,,,baseline,1.924950000102399,,1.0431840000819648 +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.06183900000000797,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,3,,,baseline,0.5625730000247131,,0.2727329992922023 +,,,,,,,,,,,,,,,3,,,,81224,,,,,0.4516560000000225,,,,sqlite,,,,,,worker_cold_select1,,,local,,,3,,,baseline,98.81046800001059,,0.5140650000612368 +,,,,,,,,,,,,,,,3,,,,87380,,,,,19.445599000000037,,,,sqlite,,,50000,,,worker_50000,,,local,,,3,,,baseline,77.04907200059097,,44.52168599982542 +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.5243129999999985,,,,sqlite,,,,,,worker_cold_select1,,,local,,,4,,,baseline,82.69167599974026,,0.8782800005064928 +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.015455999999969272,,,,sqlite,,,,,,reuse_select1,,,local,,,4,,,baseline,0.01539999993838137,, +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.30174199999999374,,,,sqlite,,,1000,,,worker_1000,,,local,,,4,,,baseline,1.9739359995583072,,1.148046999333019 +,,,,,,,,,,,,,,,4,,,,87380,,,,,44.76623200000002,,,,sqlite,,,50000,,,direct_50000,,,local,,,4,,,baseline,45.18114299935405,, +,,,,,,,,,,,,,,,4,,,,87380,,,,,13.601480999999971,,,,sqlite,,,50000,,,worker_50000,,,local,,,4,,,baseline,77.86293499975727,,51.82458899980702 +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.093600000000027,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,4,,,baseline,0.7796280006004963,,0.27823100026580505 +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.2384730000000168,,,,sqlite,,,,,,connect_select1_close,,,local,,,4,,,baseline,0.25363799977640156,, +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.46527200000001656,,,,sqlite,,,1000,,,direct_1000,,,local,,,4,,,baseline,0.4719910002677352,, +,,,,,,,,,,,,,,,4,,,,87380,,,,,0.1400810000000141,,,,sqlite,,,,,,cancellable_select1,,,local,,,4,,,baseline,0.1399689999743714,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.09078899999998002,,,,sqlite,,,,,,cancellable_select1,,,local,,,5,,,baseline,0.09061699984158622,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.2905029999999975,,,,sqlite,,,1000,,,direct_1000,,,local,,,5,,,baseline,0.29335799990803935,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.24688000000000487,,,,sqlite,,,1000,,,worker_1000,,,local,,,5,,,baseline,1.3069770002402947,,0.7454419992427574 +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.5261229999999895,,,,sqlite,,,,,,worker_cold_select1,,,local,,,5,,,baseline,85.8019739998781,,0.9186429997498635 +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.2775410000000478,,,,sqlite,,,,,,connect_select1_close,,,local,,,5,,,baseline,0.27699500060407445,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,46.29398600000001,,,,sqlite,,,50000,,,direct_50000,,,local,,,5,,,baseline,46.743302999857406,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.13330700000002693,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,5,,,baseline,0.8609019996583811,,0.37966099989716895 +,,,,,,,,,,,,,,,5,,,,87380,,,,,0.012055000000010807,,,,sqlite,,,,,,reuse_select1,,,local,,,5,,,baseline,0.011993000043730717,, +,,,,,,,,,,,,,,,5,,,,87380,,,,,17.602296000000017,,,,sqlite,,,50000,,,worker_50000,,,local,,,5,,,baseline,80.74950500031264,,52.07955400055653 +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.015366000000016644,,,,sqlite,,,,,,reuse_select1,,,local,,,6,,,baseline,0.015390000044135377,, +,,,,,,,,,,,,,,,6,,,,87380,,,,,16.347051,,,,sqlite,,,50000,,,worker_50000,,,local,,,6,,,baseline,72.11233399993944,,44.957313999475446 +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.4428520000000491,,,,sqlite,,,1000,,,direct_1000,,,local,,,6,,,baseline,0.44265300039114663,, +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.15453899999995357,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,6,,,baseline,0.9184079999613459,,0.37346699991758214 +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.26441999999993193,,,,sqlite,,,,,,connect_select1_close,,,local,,,6,,,baseline,0.26401200011605397,, +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.17199999999994997,,,,sqlite,,,,,,cancellable_select1,,,local,,,6,,,baseline,0.17635099993640324,, +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.34525399999996154,,,,sqlite,,,1000,,,worker_1000,,,local,,,6,,,baseline,1.727529999698163,,0.9229299994331086 +,,,,,,,,,,,,,,,6,,,,87380,,,,,0.6140329999999583,,,,sqlite,,,,,,worker_cold_select1,,,local,,,6,,,baseline,78.90235299964843,,0.5912480000915821 +,,,,,,,,,,,,,,,6,,,,87380,,,,,32.19492000000002,,,,sqlite,,,50000,,,direct_50000,,,local,,,6,,,baseline,32.38738900017779,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.48579000000004147,,,,sqlite,,,,,,worker_cold_select1,,,local,,,7,,,baseline,94.90123700015829,,1.011734999337932 +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.21949899999995637,,,,sqlite,,,,,,connect_select1_close,,,local,,,7,,,baseline,0.219238999306981,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.005702000000051832,,,,sqlite,,,,,,reuse_select1,,,local,,,7,,,baseline,0.00569400071981363,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,30.976936000000066,,,,sqlite,,,50000,,,direct_50000,,,local,,,7,,,baseline,31.151027999840153,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,15.937818999999909,,,,sqlite,,,50000,,,worker_50000,,,local,,,7,,,baseline,66.0911289996875,,38.495777000207454 +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.2804610000000096,,,,sqlite,,,,,,cancellable_select1,,,local,,,7,,,baseline,0.29022199942119187,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.48451099999990976,,,,sqlite,,,1000,,,direct_1000,,,local,,,7,,,baseline,0.4843179995077662,, +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.11739200000004946,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,7,,,baseline,0.8249630000136676,,0.4012460003650631 +,,,,,,,,,,,,,,,7,,,,87380,,,,,0.1813059999999922,,,,sqlite,,,1000,,,worker_1000,,,local,,,7,,,baseline,1.443983000172011,,0.8636960001240368 +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.07712900000000911,,,,sqlite,,,1,,,worker_warm_select1,,,local,,,8,,,baseline,0.5080290002297261,,0.2501859999028966 +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.016167999999927574,,,,sqlite,,,,,,reuse_select1,,,local,,,8,,,baseline,0.016058999790402595,, +,,,,,,,,,,,,,,,8,,,,87380,,,,,15.065364999999996,,,,sqlite,,,50000,,,worker_50000,,,local,,,8,,,baseline,64.69862700032536,,37.98599199944874 +,,,,,,,,,,,,,,,8,,,,87380,,,,,35.669026999999964,,,,sqlite,,,50000,,,direct_50000,,,local,,,8,,,baseline,36.01929900014511,, +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.419130999999906,,,,sqlite,,,1000,,,direct_1000,,,local,,,8,,,baseline,0.41885600057867123,, +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.22367899999997665,,,,sqlite,,,1000,,,worker_1000,,,local,,,8,,,baseline,1.7379780001647305,,0.9986659997593961 +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.20313999999999055,,,,sqlite,,,,,,connect_select1_close,,,local,,,8,,,baseline,0.202917000024172,, +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.46135299999994217,,,,sqlite,,,,,,worker_cold_select1,,,local,,,8,,,baseline,99.51451500000985,,1.1188530006620567 +,,,,,,,,,,,,,,,8,,,,87380,,,,,0.24784499999996878,,,,sqlite,,,,,,cancellable_select1,,,local,,,8,,,baseline,0.24957699952210533,, +,,,,,,,,,,,,,,,0,,,,117560,,,,,0.3414539999999633,,,,duckdb,,,,,,reuse_select1,,,local,,,0,,,baseline,0.34199499987153104,, +,,,,,,,,,,,,,,,0,,,,117560,,,,,0.33084999999999365,,,,duckdb,,,1000,,,worker_1000,,,local,,,0,,,baseline,16.79330699971615,,15.865794000092137 +,,,,,,,,,,,,,,,0,,,,117560,,,,,0.4680479999999987,,,,duckdb,,,,,,worker_cold_select1,,,local,,,0,,,baseline,122.3151730000609,,34.62893199957762 +,,,,,,,,,,,,,,,0,,,,117560,,,,,0.1415040000000145,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,0,,,baseline,6.828518000475015,,6.389281999872765 +,,,,,,,,,,,,,,,0,,,,129204,,,,,15.284138000000059,,,,duckdb,,,50000,,,worker_50000,,,local,,,0,,,baseline,76.27004299956752,,44.90095199980715 +,,,,,,,,,,,,,,,0,,,,137744,,,,,22.331077000000032,,,,duckdb,,,50000,,,direct_50000,,,local,,,0,,,baseline,22.600101000534778,, +,,,,,,,,,,,,,,,0,,,,137744,,,,,4.138368000000003,,,,duckdb,,,1000,,,direct_1000,,,local,,,0,,,baseline,4.163431000051787,, +,,,,,,,,,,,,,,,0,,,,137744,,,,,0.4982219999999371,,,,duckdb,,,,,,cancellable_select1,,,local,,,0,,,baseline,0.496374999784166,, +,,,,,,,,,,,,,,,0,,,,137744,,,,,0.2400189999999247,,,,duckdb,,,,,,connect_select1_close,,,local,,,0,,,baseline,0.24633300017740112,, +,,,,,,,,,,,,,,,1,,,,137744,,,,,0.2125659999999696,,,,duckdb,,,,,,reuse_select1,,,local,,,1,,,baseline,0.21221399947535247,, +,,,,,,,,,,,,,,,1,,,,137744,,,,,0.13017000000004053,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,1,,,baseline,9.94414499928098,,9.371295000164537 +,,,,,,,,,,,,,,,1,,,,137744,,,,,4.097930999999999,,,,duckdb,,,1000,,,direct_1000,,,local,,,1,,,baseline,4.190573000414588,, +,,,,,,,,,,,,,,,1,,,,148648,,,,,3.032715999999991,,,,duckdb,,,,,,worker_cold_select1,,,local,,,1,,,baseline,139.51055399957113,,35.994027000015194 +,,,,,,,,,,,,,,,1,,,,148648,,,,,0.6009580000000403,,,,duckdb,,,,,,connect_select1_close,,,local,,,1,,,baseline,0.6063790006010095,, +,,,,,,,,,,,,,,,1,,,,148648,,,,,0.3021990000000585,,,,duckdb,,,,,,cancellable_select1,,,local,,,1,,,baseline,0.30548600079782773,, +,,,,,,,,,,,,,,,1,,,,151464,,,,,17.866873000000005,,,,duckdb,,,50000,,,direct_50000,,,local,,,1,,,baseline,18.288378999386623,, +,,,,,,,,,,,,,,,1,,,,169384,,,,,19.27533499999989,,,,duckdb,,,50000,,,worker_50000,,,local,,,1,,,baseline,66.20393699995475,,32.48516999974527 +,,,,,,,,,,,,,,,1,,,,169384,,,,,0.2941439999999407,,,,duckdb,,,1000,,,worker_1000,,,local,,,1,,,baseline,16.810946999612497,,15.935767999508244 +,,,,,,,,,,,,,,,2,,,,169384,,,,,0.5517729999999776,,,,duckdb,,,,,,cancellable_select1,,,local,,,2,,,baseline,0.5570310004259227,, +,,,,,,,,,,,,,,,2,,,,169384,,,,,3.5277899999999196,,,,duckdb,,,1000,,,direct_1000,,,local,,,2,,,baseline,3.5427919992798707,, +,,,,,,,,,,,,,,,2,,,,169384,,,,,0.520771000000031,,,,duckdb,,,,,,worker_cold_select1,,,local,,,2,,,baseline,146.10521699978563,,46.639056999993045 +,,,,,,,,,,,,,,,2,,,,169384,,,,,0.5087300000000683,,,,duckdb,,,,,,reuse_select1,,,local,,,2,,,baseline,0.5080109995105886,, +,,,,,,,,,,,,,,,2,,,,175152,,,,,12.73775999999993,,,,duckdb,,,50000,,,worker_50000,,,local,,,2,,,baseline,62.25980300041556,,40.0790550002057 +,,,,,,,,,,,,,,,2,,,,175152,,,,,0.558674999999953,,,,duckdb,,,,,,connect_select1_close,,,local,,,2,,,baseline,0.5925350005782093,, +,,,,,,,,,,,,,,,2,,,,175152,,,,,18.58263900000001,,,,duckdb,,,50000,,,direct_50000,,,local,,,2,,,baseline,18.92857999973785,, +,,,,,,,,,,,,,,,2,,,,175152,,,,,0.14557199999998272,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,2,,,baseline,10.591891999865766,,10.035399999651418 +,,,,,,,,,,,,,,,2,,,,175152,,,,,0.26183400000001633,,,,duckdb,,,1000,,,worker_1000,,,local,,,2,,,baseline,17.156384000372782,,16.300909999699797 +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.3688990000000336,,,,duckdb,,,,,,reuse_select1,,,local,,,3,,,baseline,0.36847299998044036,, +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.27670699999993165,,,,duckdb,,,,,,connect_select1_close,,,local,,,3,,,baseline,0.28209300035086926,, +,,,,,,,,,,,,,,,3,,,,175152,,,,,4.0323909999999685,,,,duckdb,,,1000,,,direct_1000,,,local,,,3,,,baseline,4.112659000384156,, +,,,,,,,,,,,,,,,3,,,,175152,,,,,18.06435799999995,,,,duckdb,,,50000,,,direct_50000,,,local,,,3,,,baseline,18.283770000380173,, +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.6123829999999941,,,,duckdb,,,,,,cancellable_select1,,,local,,,3,,,baseline,0.6470560001616832,, +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.3079160000000192,,,,duckdb,,,1000,,,worker_1000,,,local,,,3,,,baseline,21.92715799992584,,20.644216000619053 +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.33169200000005006,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,3,,,baseline,6.49102999977913,,5.98082099986641 +,,,,,,,,,,,,,,,3,,,,175152,,,,,0.5728369999999927,,,,duckdb,,,,,,worker_cold_select1,,,local,,,3,,,baseline,144.91497600010916,,44.06197899970721 +,,,,,,,,,,,,,,,3,,,,175152,,,,,13.215835000000009,,,,duckdb,,,50000,,,worker_50000,,,local,,,3,,,baseline,62.589231999481854,,40.73512499962817 +,,,,,,,,,,,,,,,4,,,,175152,,,,,0.5321169999999986,,,,duckdb,,,,,,worker_cold_select1,,,local,,,4,,,baseline,146.3739330001772,,44.04020800029684 +,,,,,,,,,,,,,,,4,,,,175152,,,,,0.40221899999992594,,,,duckdb,,,,,,reuse_select1,,,local,,,4,,,baseline,0.4015280001112842,, +,,,,,,,,,,,,,,,4,,,,175152,,,,,0.21355500000008742,,,,duckdb,,,1000,,,worker_1000,,,local,,,4,,,baseline,17.12362399939593,,15.941480999572377 +,,,,,,,,,,,,,,,4,,,,175152,,,,,16.677128999999958,,,,duckdb,,,50000,,,direct_50000,,,local,,,4,,,baseline,16.827972000101,, +,,,,,,,,,,,,,,,4,,,,178648,,,,,13.40869999999994,,,,duckdb,,,50000,,,worker_50000,,,local,,,4,,,baseline,61.909980000564246,,40.2264730000752 +,,,,,,,,,,,,,,,4,,,,178648,,,,,0.1295580000000296,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,4,,,baseline,6.531830000312766,,6.085203000111505 +,,,,,,,,,,,,,,,4,,,,178648,,,,,0.4993370000000441,,,,duckdb,,,,,,connect_select1_close,,,local,,,4,,,baseline,0.49813500027084956,, +,,,,,,,,,,,,,,,4,,,,178648,,,,,3.8947950000000064,,,,duckdb,,,1000,,,direct_1000,,,local,,,4,,,baseline,3.95878899962554,, +,,,,,,,,,,,,,,,4,,,,178648,,,,,0.47485899999999415,,,,duckdb,,,,,,cancellable_select1,,,local,,,4,,,baseline,0.4786139998032013,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.23017899999999702,,,,duckdb,,,,,,cancellable_select1,,,local,,,5,,,baseline,0.22963199990044814,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,3.4467579999999387,,,,duckdb,,,1000,,,direct_1000,,,local,,,5,,,baseline,3.459214000031352,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.2550919999999568,,,,duckdb,,,1000,,,worker_1000,,,local,,,5,,,baseline,17.35560199995234,,16.16394099983154 +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.4873579999999933,,,,duckdb,,,,,,worker_cold_select1,,,local,,,5,,,baseline,131.37389199982863,,44.15947400048026 +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.5595159999999266,,,,duckdb,,,,,,connect_select1_close,,,local,,,5,,,baseline,0.5622839998977724,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,16.44511900000001,,,,duckdb,,,50000,,,direct_50000,,,local,,,5,,,baseline,16.62825499988685,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.1558280000000245,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,5,,,baseline,7.2215520003737765,,6.800870000006398 +,,,,,,,,,,,,,,,5,,,,178648,,,,,0.6185149999999862,,,,duckdb,,,,,,reuse_select1,,,local,,,5,,,baseline,0.6390030002876301,, +,,,,,,,,,,,,,,,5,,,,178648,,,,,12.652969999999986,,,,duckdb,,,50000,,,worker_50000,,,local,,,5,,,baseline,55.832220999946,,32.2906299998067 +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.4136190000000317,,,,duckdb,,,,,,reuse_select1,,,local,,,6,,,baseline,0.41883200083248084,, +,,,,,,,,,,,,,,,6,,,,178648,,,,,11.136310000000037,,,,duckdb,,,50000,,,worker_50000,,,local,,,6,,,baseline,54.66175099991233,,34.703547000390245 +,,,,,,,,,,,,,,,6,,,,178648,,,,,5.72922000000009,,,,duckdb,,,1000,,,direct_1000,,,local,,,6,,,baseline,5.748894999669574,, +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.10451899999996961,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,6,,,baseline,6.143343999610806,,5.691239000043424 +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.3871550000000834,,,,duckdb,,,,,,connect_select1_close,,,local,,,6,,,baseline,0.3860569995595142,, +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.20550299999988475,,,,duckdb,,,,,,cancellable_select1,,,local,,,6,,,baseline,0.2050399998552166,, +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.22290499999999547,,,,duckdb,,,1000,,,worker_1000,,,local,,,6,,,baseline,16.90204900023673,,16.195750000406406 +,,,,,,,,,,,,,,,6,,,,178648,,,,,0.48902800000005797,,,,duckdb,,,,,,worker_cold_select1,,,local,,,6,,,baseline,138.7631319994398,,45.59211699961452 +,,,,,,,,,,,,,,,6,,,,178648,,,,,19.636323999999927,,,,duckdb,,,50000,,,direct_50000,,,local,,,6,,,baseline,20.918588999847998,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.648597000000084,,,,duckdb,,,,,,worker_cold_select1,,,local,,,7,,,baseline,127.55371100047341,,33.88215099948866 +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.5683419999999995,,,,duckdb,,,,,,connect_select1_close,,,local,,,7,,,baseline,0.5678650004483643,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.09866299999994332,,,,duckdb,,,,,,reuse_select1,,,local,,,7,,,baseline,0.0984759999482776,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,17.231575999999915,,,,duckdb,,,50000,,,direct_50000,,,local,,,7,,,baseline,17.41763300015009,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,11.547785999999949,,,,duckdb,,,50000,,,worker_50000,,,local,,,7,,,baseline,53.65009300021484,,33.280720000220754 +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.5891720000001932,,,,duckdb,,,,,,cancellable_select1,,,local,,,7,,,baseline,0.5883410003661993,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,4.518028999999979,,,,duckdb,,,1000,,,direct_1000,,,local,,,7,,,baseline,4.585871000017505,, +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.1418109999999917,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,7,,,baseline,10.830386999259645,,10.269454999615846 +,,,,,,,,,,,,,,,7,,,,178648,,,,,0.4782340000000218,,,,duckdb,,,1000,,,worker_1000,,,local,,,7,,,baseline,17.877351999231905,,16.94996500009438 +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.13322499999990356,,,,duckdb,,,1,,,worker_warm_select1,,,local,,,8,,,baseline,6.24333999985538,,5.78342800054088 +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.6273649999999353,,,,duckdb,,,,,,reuse_select1,,,local,,,8,,,baseline,0.6333100000119884,, +,,,,,,,,,,,,,,,8,,,,178648,,,,,13.91663700000012,,,,duckdb,,,50000,,,worker_50000,,,local,,,8,,,baseline,52.26694300017698,,29.593719000331475 +,,,,,,,,,,,,,,,8,,,,178648,,,,,18.397204000000002,,,,duckdb,,,50000,,,direct_50000,,,local,,,8,,,baseline,18.652755999937654,, +,,,,,,,,,,,,,,,8,,,,178648,,,,,4.291790999999989,,,,duckdb,,,1000,,,direct_1000,,,local,,,8,,,baseline,4.31653599935089,, +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.4598890000000466,,,,duckdb,,,1000,,,worker_1000,,,local,,,8,,,baseline,22.33785499993246,,21.012672999859205 +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.7569199999999388,,,,duckdb,,,,,,connect_select1_close,,,local,,,8,,,baseline,0.7551600001534098,, +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.6122180000001087,,,,duckdb,,,,,,worker_cold_select1,,,local,,,8,,,baseline,127.38297499981854,,44.59120199953759 +,,,,,,,,,,,,,,,8,,,,178648,,,,,0.5682229999999233,,,,duckdb,,,,,,cancellable_select1,,,local,,,8,,,baseline,0.5675410002368153,, +,,13351685,,,,,,,,,,,,,0,,,,223780,,,,,27.371038999999932,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,0,,,baseline,27.764524000303936,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,0,,,,223780,,,,,4.035750999999976,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,0,,,baseline,8.639962000415835,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,0,,,,223780,,,,,6.641166000000087,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,0,,,baseline,12.028543999804242,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,0,,,,234504,,,,,6.852195999999866,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,0,,,baseline,6.8918540000595385,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,0,,,,280748,,,,,45.68678700000017,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,0,,,baseline,45.89768499954516,, +,,13351685,,,,,,,,,,,,,1,,,,280880,,,,,25.164905000000015,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,1,,,baseline,25.31562700005452,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,1,,,,280880,,,,,2.220638999999913,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,1,,,baseline,2.232355999694846,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,1,,,,280880,,,,,5.10673099999992,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,1,,,baseline,5.098478000036266,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,1,,,,280880,,,,,5.68201299999993,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,1,,,baseline,5.741744000260951,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,1,,,,309440,,,,,44.38964299999992,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,1,,,baseline,44.584131999727106,, +,,13351685,,,,,,,,,,,,,2,,,,309572,,,,,26.627560999999965,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,2,,,baseline,26.88302099977591,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,2,,,,309572,,,,,2.0594210000000057,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,2,,,baseline,2.068242999484937,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,2,,,,309572,,,,,5.19199799999992,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,2,,,baseline,5.257918999632238,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,2,,,,309572,,,,,5.412514999999951,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,2,,,baseline,5.464697999741475,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,2,,,,338116,,,,,44.01882300000004,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,2,,,baseline,44.22667999915575,, +,,13351685,,,,,,,,,,,,,3,,,,338248,,,,,24.587131000000095,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,3,,,baseline,24.72432000013214,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,3,,,,338248,,,,,2.087694999999945,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,3,,,baseline,2.092789000016637,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,3,,,,338248,,,,,5.410855999999908,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,3,,,baseline,5.426785999588901,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,3,,,,338248,,,,,5.408423999999856,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,3,,,baseline,5.423793000773003,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,3,,,,366800,,,,,45.15862699999995,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,3,,,baseline,45.38827000033052,, +,,13351685,,,,,,,,,,,,,4,,,,366932,,,,,25.423479000000082,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,4,,,baseline,25.813416999881156,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,4,,,,366932,,,,,2.076975999999897,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,4,,,baseline,2.0832290001635556,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,4,,,,366932,,,,,5.220658000000045,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,4,,,baseline,5.264686000373331,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,4,,,,366932,,,,,5.415999000000005,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,4,,,baseline,5.450632000247424,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,4,,,,395348,,,,,43.62957199999995,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,4,,,baseline,43.95189800015942,, +,,13351685,,,,,,,,,,,,,5,,,,395480,,,,,24.92376399999996,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,5,,,baseline,25.08086000034382,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,5,,,,395480,,,,,2.081063999999966,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,5,,,baseline,2.0912200006932835,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,5,,,,395480,,,,,5.025197000000148,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,5,,,baseline,5.024803999731375,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,5,,,,395480,,,,,5.268228999999902,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,5,,,baseline,5.287870000756811,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,5,,,,424148,,,,,42.928061000000014,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,5,,,baseline,43.17945800084999,, +,,13351685,,,,,,,,,,,,,6,,,,424284,,,,,23.603869,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,6,,,baseline,23.743151999951806,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,6,,,,424284,,,,,2.156578000000131,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,6,,,baseline,2.168046999940998,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,6,,,,424284,,,,,4.922318000000203,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,6,,,baseline,4.918909000480198,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,6,,,,424284,,,,,5.1345189999998375,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,6,,,baseline,5.1431810006761225,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,6,,,,424284,,,,,42.80237499999995,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,6,,,baseline,43.03285300011339,, +,,13351685,,,,,,,,,,,,,7,,,,424284,,,,,25.67014599999995,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,7,,,baseline,25.82689499922708,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,7,,,,424284,,,,,2.28644999999994,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,7,,,baseline,2.2981080001045484,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,7,,,,424284,,,,,4.0919640000001145,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,7,,,baseline,4.121107999708329,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,7,,,,424284,,,,,5.92717499999984,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,7,,,baseline,5.975600999590824,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,7,,,,424284,,,,,46.06266000000004,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,7,,,baseline,46.25519599994732,, +,,13351685,,,,,,,,,,,,,8,,,,424284,,,,,26.34104700000006,,repeated,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,8,,,baseline,26.483753999855253,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,8,,,,424284,,,,,2.1753490000000486,,repeated,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,8,,,baseline,2.194294000219088,, +,Arrow table to Arrow table; conversion from Python rows excluded,453408,,,,,,,,,,,,,8,,,,424284,,,,,3.7058030000001185,,repeated,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,8,,,baseline,3.7933049998173374,, +,Arrow table to Arrow table; conversion from Python rows excluded,174280,,,,,,,,,,,,,8,,,,424284,,,,,4.239684000000077,,repeated,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,8,,,baseline,4.244884999934584,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,8,,,,424284,,,,,42.43760600000002,,repeated,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,8,,,baseline,42.799052000191296,, +,,13351685,,,,,,,,,,,,,0,,,,432868,,,,,26.173432,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,0,,,baseline,26.275406000422663,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,0,,,,432868,,,,,1.936034999999947,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,0,,,baseline,1.9791069998973398,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,0,,,,432868,,,,,10.849032000000092,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,0,,,baseline,11.582559999624209,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,0,,,,438152,,,,,18.249498999999947,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,0,,,baseline,18.457551999745192,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,0,,,,438920,,,,,40.343377000000125,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,0,,,baseline,40.65136400004121,, +,,13351685,,,,,,,,,,,,,1,,,,438920,,,,,19.22462600000019,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,1,,,baseline,19.346185000358673,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,1,,,,438920,,,,,2.1363199999999694,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,1,,,baseline,2.1435479993670015,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,1,,,,438920,,,,,8.998779000000123,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,1,,,baseline,9.399023000696616,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,1,,,,438920,,,,,17.250297999999997,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,1,,,baseline,17.414979000022868,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,1,,,,438920,,,,,40.51636599999986,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,1,,,baseline,41.347958000187646,, +,,13351685,,,,,,,,,,,,,2,,,,438920,,,,,24.3175149999999,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,2,,,baseline,24.74911199988128,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,2,,,,438920,,,,,2.0775730000002213,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,2,,,baseline,2.0824969997192966,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,2,,,,438920,,,,,8.761969000000036,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,2,,,baseline,8.790101999693434,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,2,,,,438920,,,,,18.41368199999982,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,2,,,baseline,18.518128000323486,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,2,,,,461832,,,,,41.33459900000025,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,2,,,baseline,42.073984000126075,, +,,13351685,,,,,,,,,,,,,3,,,,476892,,,,,23.967680999999796,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,3,,,baseline,24.074690999441373,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,3,,,,476892,,,,,2.1469699999996372,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,3,,,baseline,2.161360000172863,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,3,,,,476892,,,,,9.088500999999916,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,3,,,baseline,9.161893000054988,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,3,,,,476892,,,,,17.906942999999842,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,3,,,baseline,18.274381999617617,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,3,,,,513032,,,,,56.94597400000001,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,3,,,baseline,57.34988499989413,, +,,13351685,,,,,,,,,,,,,4,,,,528092,,,,,25.03595500000033,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,4,,,baseline,25.17523499955132,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,4,,,,528092,,,,,1.9828560000001438,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,4,,,baseline,1.9884080002157134,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,4,,,,528092,,,,,9.410063000000246,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,4,,,baseline,9.680383000159054,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,4,,,,528092,,,,,16.509817999999843,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,4,,,baseline,16.83620699986932,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,4,,,,528092,,,,,39.56943699999993,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,4,,,baseline,39.92444899995462,, +,,13351685,,,,,,,,,,,,,5,,,,528092,,,,,23.811950000000248,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,5,,,baseline,23.960396999427758,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,5,,,,528092,,,,,1.9804269999998958,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,5,,,baseline,1.986475000194332,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,5,,,,528092,,,,,8.12495000000002,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,5,,,baseline,8.153918999596499,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,5,,,,528092,,,,,16.57347999999992,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,5,,,baseline,16.75744600015605,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,5,,,,528092,,,,,40.18156699999986,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,5,,,baseline,40.340361999369634,, +,,13351685,,,,,,,,,,,,,6,,,,528092,,,,,25.33129600000006,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,6,,,baseline,25.672607000160497,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,6,,,,528092,,,,,2.0962390000001108,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,6,,,baseline,2.1037770002294565,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,6,,,,528092,,,,,9.858613999999655,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,6,,,baseline,10.639427999194595,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,6,,,,528092,,,,,16.823174999999857,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,6,,,baseline,17.033473999617854,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,6,,,,528092,,,,,39.14924400000031,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,6,,,baseline,39.638303000174346,, +,,13351685,,,,,,,,,,,,,7,,,,528092,,,,,23.22892199999993,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,7,,,baseline,23.50105599998642,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,7,,,,528092,,,,,2.06712600000003,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,7,,,baseline,2.073345000098925,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,7,,,,528092,,,,,8.352652999999766,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,7,,,baseline,8.506484999998065,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,7,,,,528092,,,,,17.350374999999918,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,7,,,baseline,17.592996000530547,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,7,,,,528092,,,,,40.14101799999992,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,7,,,baseline,40.600106999590935,, +,,13351685,,,,,,,,,,,,,8,,,,528092,,,,,23.935298999999688,,varied,,ipc,,,50000,,,pickle_roundtrip,,,ipc,,,8,,,baseline,24.036782000621315,, +,Arrow table to Arrow table; conversion from Python rows excluded,13400400,,,,,,,,,,,,,8,,,,528092,,,,,2.208948000000266,,varied,,ipc,,,50000,,,arrow_none_roundtrip,,,ipc,,,8,,,baseline,2.2585449996768148,, +,Arrow table to Arrow table; conversion from Python rows excluded,13201448,,,,,,,,,,,,,8,,,,528092,,,,,8.559085999999994,,varied,,ipc,,,50000,,,arrow_lz4_roundtrip,,,ipc,,,8,,,baseline,8.60248099979799,, +,Arrow table to Arrow table; conversion from Python rows excluded,6575776,,,,,,,,,,,,,8,,,,528092,,,,,17.11010299999982,,varied,,ipc,,,50000,,,arrow_zstd_roundtrip,,,ipc,,,8,,,baseline,17.28070600074716,, +,Python rows to Python rows including both Arrow conversions,13400400,,,,,,,,,,,,,8,,,,528092,,,,,42.07743999999991,,varied,,ipc,,,50000,,,arrow_python_roundtrip,,,ipc,,,8,,,baseline,42.31030200025998,, diff --git a/docs/performance/provenance.json b/docs/performance/provenance.json new file mode 100644 index 00000000..95aa3b15 --- /dev/null +++ b/docs/performance/provenance.json @@ -0,0 +1,10 @@ +{ + "baseline_source": "9db49c230c7cab6abe497d14b9f51e39ad30cb42", + "measured_candidate_source": "0640c96464dcb50434f97b14d097418b51b110ba", + "measured_lab_snapshot": "03e68b73999e07118897e4344fcf31b3855a25d5", + "measurement_file_hashes_verified_against_git": true, + "csv_sha256": "2be37261edb9f55a51c8194e179719547d788b37163f9912e138d9d2c13df11d", + "baseline_cli_lint_findings": 5, + "candidate_cli_lint_findings": 4, + "introduced_cli_lint_findings": 0 +} diff --git a/docs/performance/raw/manifest.json b/docs/performance/raw/manifest.json new file mode 100644 index 00000000..e12c8e8d --- /dev/null +++ b/docs/performance/raw/manifest.json @@ -0,0 +1,117 @@ +[ + { + "file": "observations-000.json.gz", + "records": 60, + "sha256": "4224426f53a422dc2d36e125452f49e79821d2bade8319f0fdc9c65b96bffc76" + }, + { + "file": "observations-001.json.gz", + "records": 60, + "sha256": "6cfcdeef6bf445567bec344e5f1f5eecaf4bec330ea67d35d6598a9f53703df7" + }, + { + "file": "observations-002.json.gz", + "records": 60, + "sha256": "691ef4ec04bfdbfda3a521b9f0b856e33760c524d8d1162fc4b0a87aa844804a" + }, + { + "file": "observations-003.json.gz", + "records": 60, + "sha256": "1cf26ab77242047246bf917bc6722b6a21599bdc5b825fcddc06f46597d87848" + }, + { + "file": "observations-004.json.gz", + "records": 60, + "sha256": "867310217bc0b0abb6205679ae38515a67a228c935181630cc252106070b4d65" + }, + { + "file": "observations-005.json.gz", + "records": 60, + "sha256": "47ce191e628a0cc2e4bbd915af75b7b833b04bfeca0f96582930f8d9b14f7f14" + }, + { + "file": "observations-006.json.gz", + "records": 60, + "sha256": "4bc62b967df82947e8cb0ec78604aa6df5d631e0e38273686bf10d78eee1f93e" + }, + { + "file": "observations-007.json.gz", + "records": 60, + "sha256": "0849a29238aef64d30c11c1b1a6bf993c68c0ccf55a70490f9f1a42ab4b1f2f1" + }, + { + "file": "observations-008.json.gz", + "records": 60, + "sha256": "b211c0ce20ce31b354d40ec4a3e8ab9fa9e7690ac64eabfd6d8bc37d9a9d8e97" + }, + { + "file": "observations-009.json.gz", + "records": 60, + "sha256": "9524ff1327043b9cae55acc37471534b81af913b8aca3060b3a7985dc02ac424" + }, + { + "file": "observations-010.json.gz", + "records": 60, + "sha256": "3bac44cc1726a9be5e79014c2a0b19a945c5c8628cea635c3409dbdf1eff3bd8" + }, + { + "file": "observations-011.json.gz", + "records": 60, + "sha256": "b420bc13cdced18e05fdf3cf3573a0bbbf95415719ef0a6ab7f2de027b350b5d" + }, + { + "file": "observations-012.json.gz", + "records": 60, + "sha256": "1d21ab9eeea3e14575e504a2e20d303b8e8aaf4e77ebb0d13f6bf948193e37a1" + }, + { + "file": "observations-013.json.gz", + "records": 60, + "sha256": "f1f8ed9175f9c6b6e647d502dd170be5664f0b98c99744e31d1c93b712d94302" + }, + { + "file": "observations-014.json.gz", + "records": 60, + "sha256": "8bc8750e6066c8b94748ddb9cd42320b13ddb7582da7d55847d0107eb9815e8b" + }, + { + "file": "observations-015.json.gz", + "records": 60, + "sha256": "59413d4ef2f26b0fd0d4049cf434e98167a8e41dbeae4d6ac6c40affeb1b3f4a" + }, + { + "file": "observations-016.json.gz", + "records": 60, + "sha256": "6bc2282e0b72f06d2c96a1b47ec37f56f455b3deb2a53c4f38fe080ed4949adb" + }, + { + "file": "observations-017.json.gz", + "records": 60, + "sha256": "5c1e213336fcf2e2abb5f3426f6e9c0658b126090f731c1d08473350d1aee19b" + }, + { + "file": "observations-018.json.gz", + "records": 60, + "sha256": "3b29231b9f51979fd80ba516ebc83e21728072b4383a53b0b7457c0fbcccc2fc" + }, + { + "file": "observations-019.json.gz", + "records": 60, + "sha256": "4ef0bdbc4944fb9c450ef0f734a7cf9337d045453a0af4daf3a84a3ae962fdb0" + }, + { + "file": "observations-020.json.gz", + "records": 60, + "sha256": "56c3bc013626c4f9309f2e495c57c29d9315f506607bf4a1d75695f7282fcfa2" + }, + { + "file": "observations-021.json.gz", + "records": 60, + "sha256": "ba77b914dd19fe002e1fd3884ab4f1b615f49ef30315dbaa396a398f39947fd6" + }, + { + "file": "observations-022.json.gz", + "records": 29, + "sha256": "c4bd187d0f7c9c426dd694d861893af7dd0d131fac87d9eabfe4ee64a2716f39" + } +] diff --git a/docs/performance/raw/observations-000.json.gz b/docs/performance/raw/observations-000.json.gz new file mode 100644 index 00000000..d0dc21ee Binary files /dev/null and b/docs/performance/raw/observations-000.json.gz differ diff --git a/docs/performance/raw/observations-001.json.gz b/docs/performance/raw/observations-001.json.gz new file mode 100644 index 00000000..c77aa641 Binary files /dev/null and b/docs/performance/raw/observations-001.json.gz differ diff --git a/docs/performance/raw/observations-002.json.gz b/docs/performance/raw/observations-002.json.gz new file mode 100644 index 00000000..1eecff57 Binary files /dev/null and b/docs/performance/raw/observations-002.json.gz differ diff --git a/docs/performance/raw/observations-003.json.gz b/docs/performance/raw/observations-003.json.gz new file mode 100644 index 00000000..a513fee3 Binary files /dev/null and b/docs/performance/raw/observations-003.json.gz differ diff --git a/docs/performance/raw/observations-004.json.gz b/docs/performance/raw/observations-004.json.gz new file mode 100644 index 00000000..9f39c87f Binary files /dev/null and b/docs/performance/raw/observations-004.json.gz differ diff --git a/docs/performance/raw/observations-005.json.gz b/docs/performance/raw/observations-005.json.gz new file mode 100644 index 00000000..ac8888d6 Binary files /dev/null and b/docs/performance/raw/observations-005.json.gz differ diff --git a/docs/performance/raw/observations-006.json.gz b/docs/performance/raw/observations-006.json.gz new file mode 100644 index 00000000..8d6e1b09 Binary files /dev/null and b/docs/performance/raw/observations-006.json.gz differ diff --git a/docs/performance/raw/observations-007.json.gz b/docs/performance/raw/observations-007.json.gz new file mode 100644 index 00000000..8a75839a Binary files /dev/null and b/docs/performance/raw/observations-007.json.gz differ diff --git a/docs/performance/raw/observations-008.json.gz b/docs/performance/raw/observations-008.json.gz new file mode 100644 index 00000000..514f8a81 Binary files /dev/null and b/docs/performance/raw/observations-008.json.gz differ diff --git a/docs/performance/raw/observations-009.json.gz b/docs/performance/raw/observations-009.json.gz new file mode 100644 index 00000000..5458c033 Binary files /dev/null and b/docs/performance/raw/observations-009.json.gz differ diff --git a/docs/performance/raw/observations-010.json.gz b/docs/performance/raw/observations-010.json.gz new file mode 100644 index 00000000..ee1d1ade Binary files /dev/null and b/docs/performance/raw/observations-010.json.gz differ diff --git a/docs/performance/raw/observations-011.json.gz b/docs/performance/raw/observations-011.json.gz new file mode 100644 index 00000000..c2fe9402 Binary files /dev/null and b/docs/performance/raw/observations-011.json.gz differ diff --git a/docs/performance/raw/observations-012.json.gz b/docs/performance/raw/observations-012.json.gz new file mode 100644 index 00000000..b71e2acb Binary files /dev/null and b/docs/performance/raw/observations-012.json.gz differ diff --git a/docs/performance/raw/observations-013.json.gz b/docs/performance/raw/observations-013.json.gz new file mode 100644 index 00000000..659d6853 Binary files /dev/null and b/docs/performance/raw/observations-013.json.gz differ diff --git a/docs/performance/raw/observations-014.json.gz b/docs/performance/raw/observations-014.json.gz new file mode 100644 index 00000000..9fcf81c9 Binary files /dev/null and b/docs/performance/raw/observations-014.json.gz differ diff --git a/docs/performance/raw/observations-015.json.gz b/docs/performance/raw/observations-015.json.gz new file mode 100644 index 00000000..f9a3f253 Binary files /dev/null and b/docs/performance/raw/observations-015.json.gz differ diff --git a/docs/performance/raw/observations-016.json.gz b/docs/performance/raw/observations-016.json.gz new file mode 100644 index 00000000..747e2dd3 Binary files /dev/null and b/docs/performance/raw/observations-016.json.gz differ diff --git a/docs/performance/raw/observations-017.json.gz b/docs/performance/raw/observations-017.json.gz new file mode 100644 index 00000000..5cc2da0c Binary files /dev/null and b/docs/performance/raw/observations-017.json.gz differ diff --git a/docs/performance/raw/observations-018.json.gz b/docs/performance/raw/observations-018.json.gz new file mode 100644 index 00000000..6ae610d5 Binary files /dev/null and b/docs/performance/raw/observations-018.json.gz differ diff --git a/docs/performance/raw/observations-019.json.gz b/docs/performance/raw/observations-019.json.gz new file mode 100644 index 00000000..3188412c Binary files /dev/null and b/docs/performance/raw/observations-019.json.gz differ diff --git a/docs/performance/raw/observations-020.json.gz b/docs/performance/raw/observations-020.json.gz new file mode 100644 index 00000000..f602112b Binary files /dev/null and b/docs/performance/raw/observations-020.json.gz differ diff --git a/docs/performance/raw/observations-021.json.gz b/docs/performance/raw/observations-021.json.gz new file mode 100644 index 00000000..565b1a38 Binary files /dev/null and b/docs/performance/raw/observations-021.json.gz differ diff --git a/docs/performance/raw/observations-022.json.gz b/docs/performance/raw/observations-022.json.gz new file mode 100644 index 00000000..cdc29fd3 Binary files /dev/null and b/docs/performance/raw/observations-022.json.gz differ diff --git a/docs/performance/report.html b/docs/performance/report.html new file mode 100644 index 00000000..19db1c95 --- /dev/null +++ b/docs/performance/report.html @@ -0,0 +1,6912 @@ + + + + + +sqlit performance study + + + + +
+ +
+

sqlit performance study

+ +
+

Abstract

+

A measured investigation of sqlit identifies a severe autocomplete bottleneck and smaller sources of unnecessary startup and idle work. The strongest implemented result is a 98.1% reduction in completion work plus dropdown refresh with 5,000 stored routines: the median falls from 1,841.2 ms to 34.6 ms. An index replaces a quadratic scan without changing the observed suggestions. Empty-queue scheduling changes reduce explorer-focus idle CPU by 72.0%, and honoring a saved disabled-worker preference reduces launch-and-exit CPU by 16.1%.

+

The study contains 1349 recorded observations from 152 sequential jobs, plus diagnostic pilots. It exercises the actual Textual application in pseudo-terminals, five real database engines, a controlled network-delay relay, and alternative rendering and serialization strategies. Database experiments show approximately 98% less response payload when a 50,000-row query is explicitly bounded to the first 1,001 rows. Bulk rendering and threaded preparation finish sooner but produce longer event-loop stalls. A sampled, row-backed prototype is promising for CPU and result availability, with substantial feature-contract work remaining.

+

Default first-refresh startup improvement is not established by the confidence interval. The long-cell change also lacks a reliable end-to-end timing gain in the repeated trials. Results apply to the stated fixtures, software versions and machine; they are not an overall application speedup, a physical FPS measurement or a production-cloud benchmark.

+
+ +
+

1. Study design

+

The investigation separates time to first useful display, time to complete a result, consumed CPU, event-loop responsiveness, terminal output, database payload and process memory. These quantities answer different questions. An optimization that removes waiting can increase CPU or redraw traffic, while a process that consumes little CPU can still block input. Each experimental conclusion names its measurement boundary.

+
+
Baseline source9db49c230c7c, main at the start of the study.
+
Measured changes0640c96464dc, including 1efa0e8.
+
MachineIntel Core Ultra 5 228V, eight logical CPUs, approximately 31 GiB RAM, Linux. Existing CPU-governor settings were retained.
+
SoftwareCPython 3.13.5; Textual 8.2.8; textual-fastdatatable 0.19.0; PyArrow 21.0.0. Dependencies came from the existing frozen lockfile.
+
UI environment120 × 40 pseudo-terminal; isolated configuration and temporary paths; synthetic application stores; real rendering and terminal writes.
+
Database enginesPostgreSQL 16, MySQL 8.0 and MariaDB 11 in disposable containers; SQLite and DuckDB in temporary files. Image content hashes are retained in the observations.
+
Measurement date10 September 2026. Source, package inventory, workload scripts, image hashes and run receipts accompany the results.
+
+

Experimental coverage

+
+ + + + + + +
QuestionExperimentReplication and boundary
Startup and import costDefault worker policy, saved worker disabled, and empty bytecode cache15 launches per source and normal condition; seven empty-bytecode launches. Separate import-traced pilot.
Typing-related freezes100–5,000 routines in the completion engine; 1,000 and 5,000 routines in the app dropdown pathNine trials per condition. CPU-function warmups are excluded; UI trials use fresh app processes.
Idle CPUExplorer focus and editor focus, with blinking preservedNine five-second windows per focus and source. The high-frequency heartbeat is disabled here.
Results and scrolling1,000–50,000 rows, six-column data, 40-column data, long text, decimals, 30 scroll actions and filteringFive trials per rendering strategy in a fixed workload sequence. Long-cell isolation adds five fresh-process trials per source.
Network and database costRow caps, explicit LIMIT, streaming cleanup, metadata query counts and connection reuseNine repeats across three server engines at zero and 20 ms added one-way latency. SQL runs against real servers.
Process and serialization costFresh/reused local connections, cancellable queries, cold/warm workers, 1,000/50,000 rows and IPC representationsNine repeats. Python-to-Python and already-columnar boundaries are reported separately.
+

Controls and statistics

+

Workloads ran sequentially. Baseline/candidate order was randomized within trial blocks with a fixed seed, and the rendering-strategy order was randomized. Database scenarios were shuffled within each repetition. Source commits were checked before jobs. Docker servers were limited to one CPU and 512 MiB each, exposed only on random loopback ports, then stopped and removed. Only synthetic database contents and public lab credentials were used.

+

The principal statistic is the median. Error bars show a nonparametric 95% bootstrap interval for that median, using 2,000 resamples. Reported improvement intervals use 5,000 resamples; matched trial blocks are resampled together where available. The completion-engine source runs use independent resampling. Reduction is 100 × (median before − median after) / median before. Negative reduction means increased cost. Means, standard deviations, quartiles, minimum, maximum and descriptive p95 values are available in the interactive appendix and JSON.

+

These are exploratory intervals, without correction for examining many alternatives. A p95 computed from five or nine runs is a description of this small sample, not a service-level guarantee. No host cache was dropped, CPU governor changed, or visible desktop manipulated. A new Python process is “cold” only at the process level; the filesystem may remain warm. The empty-bytecode condition redirects Python’s bytecode lookup and does not emulate a cold disk.

+
+ +
+

2. Diagnostics and calibration

+

The existing startup profiler and import tracer identified the startup phases. The existing debug-event bus and UI-stall watchdog were exercised in dedicated diagnostic runs. A known 120 ms blocking sleep produced a roughly 118 ms excess-delay observation and a watchdog warning. This control matters because the blocking sleep consumes little CPU: CPU utilization alone would miss the freeze.

+

The new lab adds a five-millisecond asyncio heartbeat, per-workload consumed CPU, terminal-byte accounting, display-call timestamps, Chrome trace exports, repeatable result assertions and statistics. cProfile localized rendering work in the compositor, table and Rich formatting paths. An independent py-spy recording of the baseline completion workload collected 471 samples with no sampling errors and retained a Speedscope file. Diagnostic timings are excluded from the formal comparative summaries.

+

A heartbeat value is lateness beyond its requested five-millisecond sleep. It is not a measured frame presentation time. Likewise, an application display call can write a partial update and need not correspond to one monitor frame. The report therefore uses event-loop lateness and terminal output as responsiveness evidence, without relabeling them as physical FPS. The formal completion runs disable the native watchdog to keep diagnostics overhead separate; watchdog evidence comes from the dedicated control runs.

+

The existing rendering tests permit several seconds and the standard headless app path does not start the idle scheduler. Those tests remain useful correctness checks, but cannot by themselves establish smooth interactive performance. The PTY experiments run the ordinary scheduler and renderer. A CLI preparser issue also surfaced: an absolute value following a diagnostic path flag could be mistaken for a project directory. The branch repairs that parsing and adds path-argument regressions.

+

Clock and CPU definitions follow Python’s time API. Threaded work must also respect the Textual worker/UI boundary; moving a function to a thread is not evidence that its complete pipeline has become non-blocking.

+
+ +
+

3. Autocomplete: a confirmed quadratic bottleneck

+

Implemented and tested

+

The baseline computes a display name for each routine by scanning every routine again to discover same-name entries in other schemas or databases. With N routines, this creates approximately candidate comparisons before returning at most 50 suggestions. The work also occurs for unrelated SQL and, in the original ordering, even before the blank-input early return.

+

The change builds one mapping from lowercased routine name to its database/schema identities, then uses that mapping for disambiguation. Original spelling, qualified names and output ordering are preserved. Blank or string-literal input returns before constructing the catalog index. The index is local to the completion request, avoiding a persistent cross-connection invalidation problem.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 5000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stored routines + + + + + + + + + + + + + + + + + + + + 1 + 0 + + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Completion function (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Algorithm scaling; n = 9 per size + + + + + + + + + + Baseline + + + + + + + + + Implemented changes + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 500 + + + + + + + + + + + + + 750 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1250 + + + + + + + + + + + + + 1500 + + + + + + + + + + + + + 1750 + + + + App completion + dropdown refresh (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1,841.2 ms + + + 34.6 ms + + + Actual PTY app; 5,000 routines; n = 9 + + + + + + + + + + + + +
Figure 1. Catalog scaling and the actual app completion path. Shading and error bars show 95% bootstrap intervals for the median. Input transport and the existing 100 ms debounce are outside this timing boundary. Download SVG
+

For 5,000 routines, the standalone completion function falls from 2,337.5 ms to 5.6 ms. In the real application completion-and-dropdown path, the corresponding median is 1,841.2 ms to 34.6 ms, with a 95% reduction interval of approximately 97.0–98.2%. At 1,000 routines the UI path falls from 98.4 to 21.8 ms.

+

The large difference between the optimized function and the complete dropdown path is residual UI work, not a contradiction. The UI also formats names, computes context, mounts suggestion rows and refreshes. The existing 100 ms autocomplete debounce is outside the measured boundary. A 35 ms callback-and-refresh result does not establish a universal 16.7 ms frame budget; the largest low-overhead candidate heartbeat observation in this completion series still exceeds 50 ms.

+

Validation includes a deterministic operation-count regression that fails on repeated catalog rescanning, namespace and case checks, and the existing completion suite. The initial focused lane passed 347 tests. The formal engine samples retain hashes of their suggestion lists so that speed and observed output can be compared together. Further dropdown reuse or batched mounting is a separate opportunity, with no speedup claimed here.

+
+ +
+

4. Startup: remove unnecessary work before promising faster launch

+

Worker preference fix implemented

+

The CLI creates its process worker before constructing the Textual app, which preserves an existing platform safeguard around process spawning. Previously, the saved process_worker=false setting was applied only during mount, after that worker had already been created. The fix reads this preference before prewarming. Enabled configurations retain the early spawn path.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + baseline + + + + + + + + + + Default + implemented + + + + + + + + + + Disabled + baseline + + + + + + + + + + Disabled + implemented + + + + + + + + + + Empty .pyc + implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 400 + + + + + + + + + + + + + 600 + + + + + + + + + + + + + 800 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1200 + + + + Launch to observed first refresh (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cold processes; warm filesystem cache + + + + + + + + + + + + + + + Default + baseline + + + + + + + + + + Default + implemented + + + + + + + + + + Disabled + baseline + + + + + + + + + + Disabled + implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 300 + + + + + + + + + + + + + 400 + + + + + + + + + + + + + 500 + + + + Launch-and-exit process CPU (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Respecting the disabled-worker setting + + + + + + + + + + + + +
Figure 2. Startup wall time and consumed CPU. Normal conditions have 15 trials per source; empty bytecode has seven. Native timing still runs in these trials. CPU covers the first-refresh-and-exit process lifecycle, including reaped child work. Download SVG
+

With the saved worker disabled, launch-and-exit CPU falls from 541.8 to 454.4 ms, a 16.1% reduction with a 95% interval of about 14.9–19.6%. First-refresh medians move from 410.7 to 393.0 ms, but the interval crosses zero. Default-policy startup likewise has no clearly established improvement. The supported claim is less unnecessary CPU when the worker is disabled.

+

Import diagnostics place a large share of startup before the first app construction, including Textual, Rich, the results widget and Arrow. Import timings are inclusive and must not be added as though every module were independent. The separate empty-bytecode condition reaches first refresh at approximately 1,194 ms, versus 393 ms for the compiled-cache disabled-worker condition. This supports checking bytecode generation in source-only or unusual packaging paths; it does not show that a normal installer is missing that optimization.

+

The next architectural startup experiment should defer the heavy results backend behind a lightweight empty-results state. It requires preserving focus, table selectors, commands and the first-query experience. The observed import budget is an opportunity ceiling, not a measured saving from an implementation. This study does not recommend deferring security checks or disabling the enabled worker’s platform safeguards merely to improve a launch number.

+
+ +
+

5. Idle CPU: schedule work when it exists

+

Implemented and tested

+

The baseline idle scheduler arranges another check every 150 ms even with an empty queue. The change leaves no check scheduled when there is no work, arms a timer when a job arrives, disarms it after cancellation or pause, and resumes pending work correctly. Elapsed-time decisions use a monotonic clock. Reentrant job requests and stop/start behavior are covered by lifecycle tests.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + Process CPU over 5 seconds (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 21.1 ms + + + 5.9 ms + + + Explorer focus + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + Process CPU over 5 seconds (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 39.9 ms + + + 23.7 ms + + + Editor focus; cursor blinking retained + + + + + + + + + + + + +
Figure 3. Empty-queue polling costs measurable CPU even when the UI is still. Nine trials per condition, no 5 ms heartbeat during idle windows. The requested final refresh is included in both versions. Download SVG
+

With explorer focus, the five-second median CPU total falls from 21.1 to 5.9 ms. That is approximately 0.42% to 0.12% of one CPU core, or about 15 ms less consumed CPU per five seconds. The relative reduction is 72.0%, but the absolute magnitude is important. Editor-focus CPU falls from 39.9 to 23.7 ms while retaining cursor blinking.

+

This is a reduction in periodic application work, not a measured battery-life gain. Other wakeups, the terminal emulator and the rest of the desktop remain outside the process measurement. A cursor-blink-disabled pilot showed an additional preference-dependent opportunity, but was not adopted or promoted to a replicated claim. Keeping the existing visual behavior while eliminating empty polling is the better-supported change.

+
+ +
+

6. Rendering: throughput, stutter, memory and terminal traffic

+

The stock result path renders a small preview, then appends rows through idle work. The main comparison loads 50,000 six-column rows, while other fixtures exercise small results, 40-column tables, long text, Decimal values, scrolling and filtering. Full result availability, initial result refresh and event-loop lateness are retained separately. Original row counts and selected values are asserted.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Time until all 50,000 rows are available (ms) + + + + + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 70 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 90 + + + + Median of per-trial maximum loop lateness (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16.7 ms excess-delay reference + + + Rendering trade-offs; 50,000 × 6 cells; n = 5 + + + + + + + + + Baseline (306 CPU ms) + + + + + + + + Implemented changes (312 CPU ms) + + + + + + + + Bulk, UI thread (141 CPU ms) + + + + + + + + Preview + thread (204 CPU ms) + + + + + + + + 500 rows / timer (418 CPU ms) + + + + + + + + Sampled row backend (62 CPU ms) + + + + + + + + + + +
Figure 4. Faster completion can create worse stutter. Marker area scales with CPU, and horizontal error bars show median time uncertainty. Lateness is excess beyond a 5 ms sleep; the dashed line is a diagnostic reference, not proof of physical 60 FPS. Download SVG
+

Bulk rendering

+

Rejected as a general default

+

Building the whole table immediately reduces median full availability from 1,304.1 to 154.4 ms and reduces CPU by 54.1%. However, the median of each trial’s maximum heartbeat lateness rises from 22.1 to 94.7 ms. Finishing the batch sooner comes with a substantially longer single interruption.

+

Preview plus threaded preparation

+

Did not meet the responsiveness objective

+

The hybrid keeps an immediate preview, prepares a complete Arrow backend in a thread and replaces the table once. Full availability improves to 228.1 ms, but maximum lateness remains about 94.8 ms. The experiment demonstrates that moving preparation to a thread does not, by itself, remove the complete pipeline’s blocking behavior. Native conversion, GIL behavior and final mounting require separate attribution before selecting a more complex worker design. Python documents the relevant limitation of asyncio.to_thread.

+

More frequent timed batches

+

A measurable trade-off

+

Appending 500 rows per short timer reduces full availability to 524.7 ms while keeping the median maximum lateness near 21.2 ms. It also generates substantially more terminal output: 236,866.0 bytes versus 146,513.0. Its CPU point estimate increases. A foreground render scheduler therefore needs both a latency budget and redraw coalescing; shortening timers alone is not a lightweight solution.

+

Rows retained in Python, display work on demand

+

Strong prototype; incomplete production contract

+

The read-only prototype retains the existing Python rows and supplies visible values on demand, with widths sampled from 128 leading rows and the last row. It avoids converting the complete dataset into a second representation solely for display. Full availability falls to 67.1 ms and CPU to 62.2 ms: 94.9% and 79.7% reductions respectively in this fixture.

+

The prototype changes the column-width policy and does not implement all mutation/export contracts. Filtering and restoration still exercise stock application paths. It runs inside the existing Arrow-dependent app, so it does not demonstrate removal of that dependency or its import cost. The next development step is an explicit backend contract covering sort, copy, export, duplicate labels, mixed types, UUIDs, binary values, dates, decimals and cancellation. The measured gain justifies that work; it does not justify silently replacing the current backend.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + Terminal payload (kB, decimal) + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented changes + + + + + + + + + + Bulk, UI thread + + + + + + + + + + Preview + thread + + + + + + + + + + 500 rows / timer + + + + + + + + + + Sampled row backend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Result-loading output volume + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + Process high-water RSS (MiB) + + + + + + + + + + + Baseline + + + + + + + + + + Implemented changes + + + + + + + + + + Bulk, UI thread + + + + + + + + + + Preview + thread + + + + + + + + + + 500 rows / timer + + + + + + + + + + Sampled row backend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Memory by this point in the fixed sequence + + + + + + + + + + + + +
Figure 5. Terminal bytes and cumulative peak RSS at the 50,000-row workload. RSS includes imports and earlier workloads; it is not an allocation measurement for this query. The sampled backend still runs inside the existing Arrow-dependent application. Download SVG
+

Terminal bytes are the UTF-8 payload submitted to the terminal driver, excluding SSH framing, encryption, compression and retransmission. Scrolling still produces substantial output across backend strategies, so faster data preparation alone does not solve terminal transport cost. RSS is the process high-water value at a point in the same ordered workload sequence; it includes imports and earlier allocations and should not be read as the memory allocated by one operation.

+

Long-cell display bounds

+

Implemented; end-to-end speedup not established

+

The table’s formatter now honors the available width for oversized, single-line literal strings, using Rich’s cell-aware truncation. The backend value remains complete. Tests cover long ASCII, CJK, combining marks, emoji, markup-looking text and the existing styled-markup path. This gives the display representation a defined bound without truncating data used by the value viewer or other operations.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 100 + + + + Milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumed CPU + + + + + + + + + + + + + + + Baseline + + + + + + + + + + Implemented + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 300 + + + + + + + + + + + + + 350 + + + + Milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full result availability + + + + + + + + + + + + +
Figure 6. Isolated long-cell workload: 1,000 rows, three columns, 10,000-character text, five fresh processes per source. The wide uncertainty prevents a reliable end-to-end speedup claim for the clipping change. Download SVG
+

The repeated fresh-process workload does not establish a reliable whole-operation speedup: CPU medians are 90.6 and 86.3 ms, with a reduction interval spanning roughly −20% to +30%. Full-availability timing is similarly uncertain. The earlier pilot looked stronger, illustrating why the paper uses the repeated study for conclusions. This change should receive normal visual review, with no broad performance credit assigned from these timings.

+

A separate headless visual fixture shows literal markup and Unicode values at their display bounds, with all 48 original values checked in the backend. Its rows are injected for display verification; its displayed query time is not a database measurement.

+
Detailed rendering effect estimates
ComparisonBeforeAfterSavedReduction95% intervalnReading
Bulk, UI thread · availability (ms)1,304.1154.41,149.788.2%84.7 to 91.5%5/5Observed reduction
Bulk, UI thread · CPU (ms)305.8140.5165.354.1%45.3 to 67.3%5/5Observed reduction
Bulk, UI thread · maximum loop lateness (ms)22.194.7-72.6-327.6%-435.4 to -93.1%5/5Observed increase
Bulk, UI thread · terminal bytes (bytes)146,513.077,109.069,404.047.4%46.4 to 50.8%5/5Observed reduction
Preview + thread · availability (ms)1,304.1228.11,076.082.5%78.0 to 88.3%5/5Observed reduction
Preview + thread · CPU (ms)305.8203.6102.233.4%16.2 to 55.0%5/5Observed reduction
Preview + thread · maximum loop lateness (ms)22.194.8-72.6-328.0%-575.6 to -76.7%5/5Observed increase
Preview + thread · terminal bytes (bytes)146,513.097,519.048,994.033.4%32.2 to 37.7%5/5Observed reduction
500 rows / timer · availability (ms)1,304.1524.7779.459.8%46.9 to 70.4%5/5Observed reduction
500 rows / timer · CPU (ms)305.8417.8-112.0-36.6%-82.6 to 9.8%5/5Interval crosses zero
500 rows / timer · maximum loop lateness (ms)22.121.20.94.1%-58.9 to 60.7%5/5Interval crosses zero
500 rows / timer · terminal bytes (bytes)146,513.0236,866.0-90,353.0-61.7%-82.6 to -37.2%5/5Observed increase
Sampled row backend · availability (ms)1,304.167.11,237.094.9%93.8 to 95.6%5/5Observed reduction
Sampled row backend · CPU (ms)305.862.2243.679.7%77.2 to 84.1%5/5Observed reduction
Sampled row backend · maximum loop lateness (ms)22.119.32.912.9%-1.4 to 60.4%5/5Interval crosses zero
Sampled row backend · terminal bytes (bytes)146,513.077,109.069,404.047.4%46.4 to 50.8%5/5Observed reduction
+
+ +
+

7. Database transport: bound work where it happens

+

Each server contains a 50,000-row fixture with an integer key and 256-character payload. Tests use the real sqlit adapter, then compare a client-side 1,000-row cap, an explicit LIMIT 1001 plus that cap, and a provider-specific streaming cursor. A separate relay adds either zero or 20 ms delivery delay in each direction, while counting transmitted protocol payload. It pipelines data instead of sleeping once per SQL call or serially throttling every chunk.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + 4 + + + + + + + + + + + + + 6 + + + + + + + + + + + + + 8 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 12 + + + + + + + + + + + + + 14 + + + + Received protocol payload (MB, decimal) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Python row cap is not a network cap + + + + + + + Buffered cap: 1,000 + + + + + + Explicit LIMIT 1,001 + + + + + + Streaming + cleanup + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 250 + + + + Operation wall time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + +
Figure 7. All bounded result variants verify rows 1–1,000 and truncation. Streaming includes cursor cleanup and a subsequent SELECT 1. PostgreSQL named cursors avoid full transfer; MySQL/MariaDB SSCursor cleanup still consumes the remaining result. Nine trials per condition. Download SVG
+

A 1,000-row cap still receives approximately 13.79 MB in PostgreSQL and 13.44 MB in MySQL and MariaDB for the unbounded SQL fixture. The explicitly limited query receives approximately 274 kB and 267 kB respectively, a roughly 98% reduction. All bounded variants verify the same first 1,000 rows and a true truncation indication. With 40 ms injected round-trip latency, the bounded query also removes substantial CPU and elapsed work.

+

This result concerns arbitrary unbounded SQL followed by a Python fetch cap. Generated table-preview queries already use dialect-specific SQL limits. A generic textual rewrite of every submitted statement would be unsafe for syntax and semantics: multi-statement batches, existing LIMIT clauses, locking reads, side-effecting functions and DML-returned rows need their own handling. The immediate recommendation is a clear bounded-preview execution contract, not an unconditional rewrite of user SQL.

+

Streaming is provider-specific

+

PostgreSQL’s regular cursor ordinarily transfers the complete result, while a named server-side cursor supports controlled fetching. The named-cursor experiment uses a transaction, closes the cursor, rolls back and restores the connection before a health query. These lifecycle requirements are part of the approach, as described in the Psycopg documentation.

+

PyMySQL’s SSCursor returns initial rows without buffering everything, but its close operation exhausts the unread result. The lab measures this cleanup and confirms that the connection can execute SELECT 1 afterward. The full payload is still transferred for MySQL/MariaDB. This matches the documented cursor behavior. Streaming timings in the figure include that extra health query, so their boundary includes more work than the ordinary limited-query column.

+

Bandwidth figures count relay payload, including protocol messages; they exclude TCP/IP headers and packet retransmissions. The byte intervals collapse for this deterministic fixture because repeated executions produce the same payload size. That does not imply identical savings for arbitrary schemas or real cloud services.

+
+ +
+

8. Metadata and connection round trips

+

The existing PostgreSQL and MySQL-family column-inspection paths query primary-key information and column information separately. Scanning 20 fixture tables therefore requires 40 metadata queries. The lab compares that path with one query per table and a single query returning all 80 columns. Ordering, type names and primary-key flags must match the existing adapter results.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 100 + + + + 20-table metadata time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loopback relay, no added delay + + + + + + + Two queries / table + + + + + + One query / table + + + + + + One batch / 20 tables + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 250 + + + + + + + + + + + + + 500 + + + + + + + + + + + + + 750 + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 1250 + + + + + + + + + + + + + 1500 + + + + + + + + + + + + + 1750 + + + + 20-table metadata time (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + +
Figure 8. Reducing metadata round trips dominates at latency. Every strategy returns the same 80 ordered columns and primary-key flags for 20 owned fixture tables. These are explicit catalog-scan experiments, not measurements of the default lazy connection flow. Download SVG
+

At 40 ms injected round-trip latency, the 20-table scan takes about 1.66–1.72 seconds on the baseline paths. One query per table removes approximately half the latency; a single batch reduces the scan to about 44–52 ms, approximately 97% faster. Loopback improvements are smaller and more dependent on query planning. This is strong evidence for reducing round trips where multiple metadata requests are genuinely required.

+

The default application loads much metadata lazily, so the experiment is not evidence that every connection currently performs this 20-table scan. A provider-specific bulk metadata capability should be invoked by actual demand and preserve schema/database identity, permissions, ordering and cache invalidation. It should not eagerly fetch an entire organization’s catalog simply because one batch can do so efficiently.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 1 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + 3 + + + + + + + + + + + + + 4 + + + + + + + + + + + + + 5 + + + + + + + + + + + + + 6 + + + + + + + + + + + + + 7 + + + + + + + + + + + + + 8 + + + + SELECT 1 operation (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loopback relay, no added delay + + + + + + + Fresh connection + query + + + + + + Reused connection + query + + + + + + + + + + + + + + + + PostgreSQL + + + + + + + + + + MySQL + + + + + + + + + + MariaDB + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 50 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 150 + + + + + + + + + + + + + 200 + + + + SELECT 1 operation (ms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + 40 ms injected round-trip latency + + + + + + + + + + + + +
Figure 9. Measured connection reuse opportunity. These connections use local disposable credentials and no TLS. The current cancellable query path deliberately creates dedicated connections; safe pooling must preserve cancellation, transaction and session-state boundaries. Download SVG
+

For a short query at the injected latency, retaining a connection reduces median operation time from approximately 170 to 41 ms in PostgreSQL, 186 to 42 ms in MySQL, and 227 to 41 ms in MariaDB. The current cancellable-query implementation intentionally creates a dedicated connection, allowing cancellation to close it. This makes connection establishment a real opportunity and a real lifecycle constraint.

+

A useful next experiment is an exclusive-lease connection pool that discards cancelled or uncertain connections and explicitly resets reusable session state. Reset work may add round trips and reduce the available gain. Transactions, temporary objects, session settings, credential changes and cross-database routing must be validated before integration. The numbers above measure retained-connection opportunity; they are not measurements of a completed safe pool.

+
Detailed network latency effect estimates

All before/after values below are milliseconds. The final suffix “20” denotes 20 ms added in each direction.

ComparisonBeforeAfterSavedReduction95% intervalnReading
Postgresql · bounded query (ms)110.642.368.361.7%61.5 to 61.9%9/9Observed reduction
Postgresql · one query / table (ms)1,724.7924.8799.946.4%46.1 to 46.9%9/9Observed reduction
Postgresql · metadata batch (ms)1,724.751.61,673.197.0%96.7 to 97.1%9/9Observed reduction
Postgresql · connection reuse (ms)170.141.0129.075.9%75.7 to 76.3%9/9Observed reduction
Mysql · bounded query (ms)163.244.2119.072.9%72.2 to 74.2%9/9Observed reduction
Mysql · one query / table (ms)1,673.0837.7835.349.9%49.7 to 50.1%9/9Observed reduction
Mysql · metadata batch (ms)1,673.044.21,628.997.4%97.3 to 97.5%9/9Observed reduction
Mysql · connection reuse (ms)185.541.5144.077.6%76.5 to 78.0%9/9Observed reduction
Mariadb · bounded query (ms)156.044.3111.671.6%68.3 to 72.5%9/9Observed reduction
Mariadb · one query / table (ms)1,660.9833.7827.249.8%49.5 to 50.2%9/9Observed reduction
Mariadb · metadata batch (ms)1,660.943.71,617.297.4%97.3 to 97.5%9/9Observed reduction
Mariadb · connection reuse (ms)226.641.2185.481.8%81.6 to 81.9%9/9Observed reduction
+
+ +
+

9. Local databases, process isolation and IPC

+

SQLite and DuckDB experiments compare reused connections, fresh connections, the application’s cancellable-query object and the actual process-worker client. They also compare 1,000-row and 50,000-row transfers. Fixtures live in temporary files. DuckDB uses read-only connections so that the forced cross-process experiment does not depend on unsupported concurrent writers.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + 2 + + + + + + + + + + + + + + + + + + 1 + 0 + + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT 1 operation (ms, log scale) + + + + + + + + + + + + + + Reuse + + + + + + + + + + Connect / query / close + + + + + + + + + + Cancellable query + + + + + + + + + + Warm worker + + + + + + + + + + Cold worker / shutdown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sqlite + + + + + + + + + + + + + + + + + + + + + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + 1 + 0 + 1 + + + + + + + + + + + + + + + + + + 1 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT 1 operation (ms, log scale) + + + + + + + + + + + Reuse + + + + + + + + + + Connect / query / close + + + + + + + + + + Cancellable query + + + + + + + + + + Warm worker + + + + + + + + + + Cold worker / shutdown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + duckdb + + + + + + + + + + + + +
Figure 10. Embedded database connections and actual process-worker costs; nine trials each. Cold worker includes creation, execution and shutdown. DuckDB worker runs are forced laboratory comparisons with read-only files; the adapter disables that route in the normal UI. Download SVG
+

Process creation and communication can dominate a trivial local query. A warm worker avoids repeated interpreter initialization, but the current worker still creates a dedicated query connection. Parent CPU measurements exclude the worker’s CPU; the worker’s reported operation time is retained separately. The cold-worker condition includes startup, execution and shutdown. In normal UI use, DuckDB advertises that the process-worker route is unsupported, so its forced comparison is an architectural experiment rather than a measurement of that adapter’s default behavior.

+

These results favor reusing an already-needed worker and avoiding an unwanted worker, while retaining cancellation and crash isolation where required. They do not support globally removing isolation. For long queries, the startup cost may be small relative to execution; for a rapid sequence of local previews, it can be the dominant term.

+
+ + + + + image/svg+xml + + + sqlit performance laboratory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + Serialization + read-back (ms) + + + + + + + + + + + + + + Pickle: Python → Python + + + + + + + + + + Arrow: Python → Python + + + + + + + + + + Arrow: prepared → prepared + + + + + + + + + + Arrow LZ4: prepared + + + + + + + + + + Arrow Zstd: prepared + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50,000 rows; repeated 256-character text + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 40 + + + + Serialization + read-back (ms) + + + + + + + + + + + Pickle: Python → Python + + + + + + + + + + Arrow: Python → Python + + + + + + + + + + Arrow: prepared → prepared + + + + + + + + + + Arrow LZ4: prepared + + + + + + + + + + Arrow Zstd: prepared + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50,000 rows; varied 256-character text + + + + + + + + + + + + +
Figure 11. Representation boundaries determine the result. The first two rows include Python-to-Python round trips; the last three start and end as Arrow tables and exclude conversion. Each decoded result is checked for equality. Repeated strings are independent objects, avoiding artificial pickle memoization. Download SVG
+

The serialization experiment intentionally distinguishes two contracts. A Python-row round trip includes serialization and reconstruction of Python values. A prepared-Arrow round trip starts and ends with a columnar table. Arrow’s buffer-sharing and IPC properties can be valuable in a pipeline that stays columnar, but they do not eliminate the conversions required by an otherwise row-oriented pipeline. The full Python-to-Arrow-to-Python variant is measured separately. The Arrow IPC documentation describes the underlying format and zero-copy opportunities.

+

Compression is data-dependent. Both repeated text and varied deterministic hexadecimal text are exercised. Repeated strings are allocated independently to match driver-returned values, preventing pickle from receiving an artificial advantage through object-identity memoization. LZ4 and Zstd results are available with byte sizes and round-trip times. A blanket serializer or compressor replacement is not supported; a sustained columnar path needs its own end-to-end experiment.

+
+ +
+

10. Recommended actions

+

The highest-confidence changes are small and localized. The larger opportunities are supported by actual prototypes or real-server comparisons, but retain explicit implementation gates. Savings from unrelated rows in this table must not be added into an “overall percentage.”

+
+ + + + + + + + + + +
Priority and statusActionMeasured evidence and next gate
P0
Implemented
Index routine identities once per completion request.5,000-routine app completion: 1,841.2 → 34.6 ms. Preserve the operation-count and namespace regressions.
P1
Implemented
Stop empty idle-queue polling.Explorer-focus idle CPU: 21.1 → 5.9 ms per five seconds. Verify pause, resume, cancellation and new work after drain.
P1
Implemented
Honor the saved disabled-worker setting before prewarm.Launch-and-exit CPU decreases 16.1%. Keep the enabled worker’s early-spawn safeguard; no default startup speedup is established.
P1
Bounded display; timing uncertain
Keep long literal display values within the available cell width.Data fidelity and Unicode tests pass. Repeated whole-operation CPU and wall-time intervals cross zero; assign no proven overall saving.
P2
Real-server prototype
Provide one-query and demand-driven bulk metadata APIs.20-table scans at 40 ms added RTT improve by about 50% and 97%. Validate non-default schemas, duplicate names, visibility and invalidation.
P2
Real-server evidence
Make bounded retrieval an explicit execution path.Approximately 98% less response payload for the fixture. Preserve arbitrary SQL semantics; do not equate a Python row cap with a server limit.
P2
Opportunity measured
Test exclusive connection reuse with cancellation and reset.Short-query opportunity of roughly 76–82% at injected latency. Measure the actual reset/discard pool rather than promising the retained-connection upper bound.
P2
Rendering prototype
Develop a row-backed or sustained-columnar result pipeline.Sampled row backend: 50,000-row availability 1,304.1 → 67.1 ms; CPU 79.7% lower. Complete the backend feature contract first.
P3
Follow-up design
Coalesce redraws and give foreground rendering a bounded work budget.The timer experiment finishes sooner but increases terminal bytes by roughly 62%. Include active typing, resize, cancellation and slow-terminal tests.
P3
Budget identified
Audit bytecode packaging and defer heavy empty-result imports.Empty-bytecode startup is materially slower. Deferred imports still need a real first-query/focus prototype; no unbuilt speedup is claimed.
+

Approaches to avoid adopting from these results

+

Do not replace incremental rendering with a synchronous bulk build solely because completion time improves. Do not assume a thread removes native or mounting stalls. Do not switch all MySQL reads to SSCursor expecting a bandwidth cap. Do not remove cancellation isolation to reproduce a microbenchmark. Do not choose an IPC format using a comparison that excludes its required conversions. A width-cache intervention and disabling cursor blink were explored in pilots, but did not supply the same quality of evidence as the implemented fixes.

+
+ +
+

11. Validation and limits

+

All 152 formal jobs completed. The study asserts fixture result counts, selected cell values, truncation, metadata equivalence, successful post-stream connection use and serialization equality. Each owned Docker server was stopped and removed; cleanup logs retain exit and OOM state. Dedicated diagnostics provide the startup/import logs, native watchdog output, structured events, cProfile output and an independent sampling profile.

+

1,801 tests passed; 14 skipped; 0 failed. The broader lane ran the unit, UI, CLI, SQLite and DuckDB suites. The focused lanes are subsets and are not added to this total.

Skip reasons: could not import 'databricks.sdk.core': No module named 'databricks' (1); could not import 'oracledb': No module named 'oracledb' (2); SQLite is file-based, no Docker container (3); SQLite does not support sequences (2); SQLite does not have a timezone-aware datetime type (1); DuckDB is file-based, no Docker container (3); DuckDB does not support triggers (2). These skips do not stand in for live provider verification. Existing CLI lint findings were checked against the baseline; the touched production files introduce no new lint category in that comparison. Download validation details.

A separate Python 3.10 compatibility lane passed 408 targeted tests, with 0 failures and 0 skips. These tests overlap the main lane and are reported separately.

+

The primary before/after estimates are below. Values are milliseconds, including CPU milliseconds where named. An interval crossing zero means that this sample does not establish the direction of the change. The saved-worker condition and the default-worker condition are intentionally separate.

+
ComparisonBeforeAfterSavedReduction95% intervalnReading
App completion · 1000 routines (ms)98.421.876.677.9%65.9 to 79.9%9/9Observed reduction
App completion · 5000 routines (ms)1,841.234.61,806.698.1%97.0 to 98.2%9/9Observed reduction
First refresh · worker disabled (ms)410.7393.017.74.3%-0.1 to 7.4%15/15Interval crosses zero
Launch CPU · worker disabled (ms)541.8454.487.416.1%14.9 to 19.6%15/15Observed reduction
First refresh · worker default (ms)409.0402.46.61.6%-5.1 to 4.5%15/15Interval crosses zero
Launch CPU · worker default (ms)547.4537.59.91.8%-4.3 to 3.8%15/15Interval crosses zero
Idle CPU · explorer (ms)21.15.915.272.0%61.5 to 74.0%9/9Observed reduction
Idle CPU · editor (ms)39.923.716.140.5%29.2 to 47.7%9/9Observed reduction
Long cells · CPU (ms)90.686.34.34.8%-20.1 to 30.2%5/5Interval crosses zero
Long cells · availability (ms)181.4189.9-8.5-4.7%-14.5 to 42.2%5/5Interval crosses zero
+

External validity

+

This is one Linux laptop and one locked software environment. CPU frequency, thermal state and background activity were not pinned; load averages and environment metadata are retained. No physical terminal-emulator GPU timing, monitor presentation trace, battery energy or network packet loss was measured. Therefore, “60 FPS,” battery-life percentages and universal startup claims would go beyond the evidence.

+

The network-delay relay models fixed one-way latency, not a complete mobile or WAN network. It adds no loss, jitter, constrained bandwidth or TLS handshake, and its local database servers use small synthetic schemas. Paid cloud cold starts, OAuth/token refresh, SSH tunnels, enterprise catalog permissions, Oracle, SQL Server, Databricks, Exasol, Snowflake and other providers are outside the measured server matrix. No existing private connection was used to fill those gaps.

+

The principal UI dataset order is fixed, so later RSS observations include earlier allocations. Synthetic values cannot represent every driver object or LOB lifecycle. Repeated UI completion invokes the real application method and dropdown with supplied SQL text; it does not include physical keystroke transport or the existing debounce delay. Continuous typing during large-result ingestion, aggressive resize and all production cancellation races remain follow-up workloads.

+

Only the measured source changes are implemented in the branch. Experimental variants remain laboratory code. The study does not establish an installed release, a merge to main or a deployment. The baseline and measured candidate commits remain the reproducible references even if main changes later.

+
+ +
+

12. Explore the measurements

+

This table is generated from the recorded samples. Select an experiment family and metric, filter by provider, variant or scenario, and download the current view. Confidence intervals describe the median. The full JSON also retains means, standard deviations and quartiles.

+
+ + + + +
+

+
ScenarioVariant / engineConditionnMedian95% median intervalp95MinimumMaximum
+
All raw observation files

Lossless gzip-compressed JSON chunks include individual heartbeat samples and frame-call timestamps where available. The manifest supplies SHA-256 hashes. These are normalized observations; local run logs and the selected diagnostic files have separate provenance.

+
+ +
+

13. Reproduction and diagnostic tools

+

The lab scripts are stored in labs/performance/. Create separate worktrees at the referenced baseline and candidate commits and install the frozen dependencies. The controller needs only the standard library; plotting uses a separate Matplotlib environment so that plotting dependencies cannot change the measured app’s import graph.

+
uv sync --frozen --group dev --extra postgres --extra mysql --extra duckdb
+
+python labs/performance/study.py \
+  --baseline /absolute/baseline \
+  --candidate /absolute/candidate \
+  --python /absolute/candidate/.venv/bin/python \
+  --output /absolute/evidence \
+  --docker --dry-run
+
+# Remove --dry-run to execute. --quick is a smoke run only.
+# Without Docker: --phases startup,cpu,completion,render,idle
+
+python labs/performance/summarize.py \
+  --input /absolute/evidence --output docs/performance
+
+# In a separate environment with Matplotlib:
+python labs/performance/build_report.py --data docs/performance/data.json
+

The network helper only accepts disposable local containers. Individual probes can enable --diagnostics --profile, and output both Chrome trace JSON and the native debug/watchdog logs. py-spy record --format speedscope supplies a complementary sampling profile. Download the selected diagnostic recordings and regression logs. Tests should use isolated sqlit configuration; the old personal-connection watchdog integration test is not a substitute for a disposable fixture.

+

Offline trace viewer

+

Open a generated ui.trace.json file to inspect workload spans and heartbeat lateness locally. No file is uploaded. This viewer is a companion diagnostic tool; it does not convert application display calls into physical FPS.

+
+Choose a generated trace file to display its measurements. +

The lab’s trace uses logical lanes: workload spans and heartbeat observations.

+
+ +
+

References and evidence

+
    +
  1. sqlit source. Baseline 9db49c230c7c and measured candidate 0640c96464dc. Key source areas: completion engine; CLI prewarm; idle scheduler; result formatting; cursor adapters; cancellable queries and process worker.
  2. +
  3. Study data. 1349 normalized observations, descriptive statistics and effect intervals, lossless raw chunks and hashes, regression validation, and source/data provenance. The measurement-file hashes match laboratory snapshot 03e68b73999e.
  4. +
  5. Python Software Foundation. Time access and conversions, Python 3.13 documentation. Clock definitions and process CPU semantics. Accessed 10 September 2026.
  6. +
  7. Python Software Foundation. Coroutines and tasks: asyncio.to_thread. Threading and GIL limitations. Accessed 10 September 2026.
  8. +
  9. Textualize. Textual workers. Background work and UI interaction contracts. Installed Textual version measured: 8.2.8.
  10. +
  11. Psycopg project. Server-side cursors and transaction lifecycle. Installed psycopg2-binary version: 2.9.11. Accessed 10 September 2026.
  12. +
  13. PyMySQL project. Cursor objects: SSCursor and close. Installed PyMySQL version: 1.1.2. Accessed 10 September 2026.
  14. +
  15. Apache Arrow. Streaming, serialization and IPC and concat_tables. The installed implementation measured here is PyArrow 21.0.0; documentation describes the representation and buffer-sharing contracts.
  16. +
+

This HTML embeds its figures and statistical explorer and requires no external JavaScript, font or image service. The SVG figures, CSV, statistics JSON and raw chunks remain separate downloadable artifacts. Measured outcomes, experimental interventions and proposed follow-up work are intentionally identified throughout.

+
+
+
+ + + + + diff --git a/docs/performance/trace-examples.json b/docs/performance/trace-examples.json new file mode 100644 index 00000000..de85aa27 --- /dev/null +++ b/docs/performance/trace-examples.json @@ -0,0 +1 @@ +{"baseline":{"spans":[[949781.38,84694.18,"autocomplete_1000_routines"],[1142812.53,1633706.48,"autocomplete_5000_routines"]],"delays":[[89807.49,21.6148],[95183.39,0.3749],[100381.05,0.1959],[105488.2,0.1066],[119105.61,8.6163],[127055.6,2.9487],[132200.07,0.1438],[137322.1,0.121],[143109.68,0.7873],[148224.66,0.1144],[153423.18,0.1983],[158635.49,0.2111],[163729.12,0.092],[168805.52,0.0753],[173877.36,0.0712],[178956.05,0.0784],[184074.64,0.1182],[189143.91,0.0682],[194819.02,0.6749],[199907.32,0.0876],[205137.98,0.2305],[210214.35,0.0754],[215335.45,0.1207],[220449.23,0.1133],[225563.32,0.1126],[230666.72,0.1011],[235749.82,0.0825],[240823.68,0.073],[245892.34,0.0682],[251012.6,0.1201],[256077.31,0.0645],[261187.33,0.1096],[266296.63,0.1082],[271408.88,0.1101],[276497.91,0.0885],[281612.57,0.1145],[286719.46,0.1064],[291786.15,0.0661],[296851.54,0.0648],[302007.12,0.1555],[307089.01,0.0816],[312158.55,0.0683],[317273.06,0.1142],[322381.87,0.1085],[327494.75,0.112],[332584.23,0.0883],[337652.99,0.0686],[342716.28,0.0631],[348290.37,0.5736],[353522.25,0.2314],[358635.12,0.1118],[363700.65,0.0648],[368770.21,0.0694],[373840.16,0.0685],[378919.51,0.079],[384022.15,0.1019],[389129.54,0.1061],[394238.26,0.1073],[399315.07,0.0759],[404553.0,0.2373],[409645.9,0.0924],[414719.54,0.0724],[419801.83,0.0812],[424877.02,0.0743],[429960.79,0.0834],[435068.36,0.1063],[440183.07,0.1133],[445253.19,0.0695],[450349.59,0.0961],[455416.02,0.0661],[460493.18,0.0769],[465601.75,0.1078],[470807.38,0.2039],[475966.66,0.1577],[481075.15,0.1068],[486202.91,0.1262],[491298.23,0.0944],[496914.74,0.6145],[502165.38,0.2485],[507307.77,0.1406],[512460.59,0.1497],[517621.78,0.159],[522716.27,0.0914],[527832.66,0.1144],[532939.19,0.105],[538038.7,0.0981],[543262.64,0.2227],[548402.12,0.137],[553645.27,0.2411],[558769.45,0.1218],[563898.9,0.1279],[569030.57,0.1296],[574163.87,0.1307],[579315.04,0.1478],[584456.1,0.1372],[589640.34,0.182],[594756.17,0.1131],[599836.53,0.0797],[605006.69,0.169],[610132.53,0.1254],[615261.59,0.1276],[620383.5,0.1214],[625535.72,0.1501],[630638.25,0.1004],[635702.84,0.0643],[640775.63,0.0721],[646200.11,0.4243],[651491.71,0.2909],[656611.41,0.1184],[661745.73,0.1326],[666859.54,0.1125],[671963.14,0.1021],[677081.96,0.1176],[682197.65,0.1132],[687290.77,0.0926],[692429.75,0.1377],[697512.09,0.0808],[702715.94,0.2034],[707815.52,0.0989],[712925.65,0.1088],[718029.41,0.1019],[723157.71,0.127],[728264.81,0.1056],[733369.0,0.1028],[738466.44,0.0963],[743563.62,0.0967],[748703.85,0.1387],[753885.4,0.1778],[758958.98,0.0729],[764076.16,0.1154],[769238.79,0.1613],[774345.94,0.1062],[779449.45,0.1016],[784587.49,0.137],[789671.78,0.0831],[794923.13,0.2507],[800261.17,0.3372],[805409.28,0.1469],[810531.19,0.121],[815646.53,0.115],[820727.0,0.0798],[825807.91,0.0793],[830905.11,0.0968],[836030.27,0.1229],[841115.54,0.0846],[846210.99,0.0949],[851433.46,0.2211],[856597.81,0.1635],[861704.12,0.1054],[866821.08,0.1144],[872698.68,0.8757],[877783.18,0.0832],[882866.23,0.0823],[887947.87,0.081],[893018.4,0.0699],[898113.54,0.0949],[903319.36,0.204],[908413.54,0.0933],[913496.35,0.0822],[918623.08,0.1266],[923750.49,0.1269],[928855.89,0.1034],[933947.9,0.0909],[939071.68,0.1227],[944185.37,0.113],[949766.58,0.5803],[1034243.01,79.4758],[1040146.49,0.9027],[1045267.48,0.1199],[1050407.35,0.1392],[1062433.01,7.0235],[1068460.83,1.0266],[1073611.13,0.1494],[1078722.33,0.1089],[1083911.54,0.1872],[1089112.76,0.2],[1094223.74,0.1102],[1099754.2,0.5294],[1104913.25,0.1586],[1110049.01,0.1331],[1115121.44,0.072],[1120237.26,0.1152],[1125344.97,0.1073],[1130443.55,0.0978],[1135657.63,0.2126],[1140736.77,0.0783],[2775598.2,1629.8609],[2781127.28,0.5286],[2786238.35,0.1104],[2791340.18,0.101],[2796438.78,0.0977]]},"candidate":{"spans":[[963337.81,19332.69,"autocomplete_1000_routines"],[1090710.19,30928.24,"autocomplete_5000_routines"]],"delays":[[107225.53,28.0425],[112660.99,0.4342],[117759.19,0.0961],[122854.26,0.0941],[137249.14,9.394],[145635.46,3.3853],[150760.43,0.1243],[155882.21,0.12],[161202.35,0.3184],[166310.64,0.1067],[171413.49,0.1009],[176599.51,0.1847],[181731.18,0.13],[186856.22,0.1242],[191927.7,0.0708],[196998.5,0.0705],[202071.07,0.072],[207177.3,0.1045],[212450.13,0.2725],[217569.5,0.1189],[222711.72,0.14],[227871.24,0.1571],[233020.8,0.147],[238135.09,0.1118],[243293.89,0.1581],[248479.2,0.1803],[253639.42,0.1573],[258794.05,0.1516],[263875.6,0.0811],[268971.02,0.0931],[274052.58,0.081],[279173.58,0.1201],[284294.12,0.1199],[289406.64,0.1106],[294578.27,0.1689],[299733.38,0.1508],[304829.16,0.0953],[310011.56,0.1819],[315079.35,0.0676],[320147.86,0.0682],[325311.9,0.1636],[330415.76,0.1005],[335538.99,0.1227],[340656.04,0.116],[345756.19,0.0999],[350878.37,0.1211],[355969.88,0.0905],[361138.17,0.1669],[366213.47,0.0748],[371283.93,0.0691],[376369.34,0.0851],[381510.93,0.1407],[386632.49,0.1203],[391766.15,0.1287],[396840.88,0.0742],[401909.5,0.0684],[406999.62,0.0898],[412214.01,0.214],[417304.44,0.0896],[422401.15,0.0965],[427522.37,0.1204],[432619.56,0.0963],[437718.98,0.0986],[442848.04,0.1288],[447934.88,0.0865],[453005.43,0.0686],[458073.0,0.0671],[463316.98,0.2434],[468430.48,0.1129],[473543.46,0.1126],[478654.4,0.1101],[483761.91,0.1072],[488879.84,0.1163],[493958.42,0.078],[499036.95,0.0777],[504115.22,0.0774],[509250.11,0.1338],[514358.74,0.106],[519441.93,0.0822],[524543.28,0.101],[529664.05,0.1198],[534764.97,0.0995],[539831.19,0.0655],[544908.49,0.0763],[549981.01,0.0719],[555055.94,0.0746],[560258.54,0.2024],[565347.18,0.0884],[570456.36,0.1088],[575568.98,0.1121],[580690.34,0.1199],[585761.74,0.0701],[590864.19,0.1022],[595930.3,0.0644],[601000.49,0.0698],[606065.55,0.0649],[611359.32,0.2937],[616474.29,0.112],[621550.9,0.0762],[626675.53,0.1238],[631786.17,0.1098],[636867.62,0.0803],[641950.35,0.0816],[647035.08,0.0836],[652109.38,0.0738],[657248.34,0.1387],[662487.05,0.2357],[667580.39,0.0914],[672690.59,0.1092],[677762.74,0.0696],[682857.87,0.0946],[687952.19,0.0931],[693024.04,0.0714],[698094.59,0.0698],[703199.92,0.105],[708348.46,0.1471],[713435.35,0.0866],[718555.32,0.1196],[723676.0,0.1196],[728757.65,0.0812],[733871.59,0.1138],[738946.76,0.0726],[744017.92,0.0708],[749126.18,0.1079],[754251.89,0.1254],[759500.49,0.2475],[764651.81,0.1495],[769767.59,0.115],[774891.57,0.1235],[779976.92,0.0767],[785085.64,0.1083],[790205.45,0.1192],[795297.07,0.0913],[800401.56,0.104],[805495.6,0.0937],[810692.11,0.1959],[815766.16,0.0732],[820871.4,0.1049],[825937.64,0.0659],[831007.36,0.0696],[836204.75,0.1972],[842433.26,1.2278],[847549.06,0.1145],[852630.25,0.0801],[857724.26,0.0933],[862933.01,0.2083],[868037.81,0.1033],[873126.15,0.0863],[878259.58,0.1327],[884370.95,1.1073],[889487.19,0.1158],[894598.96,0.1112],[899716.38,0.1167],[904833.55,0.1166],[910011.6,0.1779],[915097.23,0.0852],[920161.43,0.064],[925245.32,0.0837],[930359.04,0.1135],[935468.04,0.1088],[940699.9,0.2307],[945846.05,0.1448],[950951.32,0.1043],[956022.65,0.071],[961216.48,0.1935],[982542.8,16.3259],[987696.47,0.1531],[992800.54,0.1026],[997886.97,0.0859],[1009755.87,6.8684],[1015845.74,1.0889],[1020957.07,0.1101],[1026176.97,0.2184],[1031309.21,0.1301],[1036425.0,0.1152],[1041494.48,0.069],[1046636.75,0.1418],[1051753.34,0.1146],[1056877.21,0.1235],[1062055.64,0.1779],[1067182.17,0.1258],[1072250.24,0.0665],[1077356.43,0.1059],[1082454.53,0.0969],[1087574.07,0.1192],[1121482.47,28.9078],[1126876.88,0.3939],[1131948.56,0.0709],[1137058.54,0.1095]]},"note":"Dedicated diagnostics-enabled pilots; separate from formal low-overhead trials."} diff --git a/docs/performance/validation.json b/docs/performance/validation.json new file mode 100644 index 00000000..a389f586 --- /dev/null +++ b/docs/performance/validation.json @@ -0,0 +1,29 @@ +{ + "source_sha": "0640c96464dcb50434f97b14d097418b51b110ba", + "suite": "tests/unit tests/ui tests/cli tests/test_sqlite.py tests/test_duckdb.py", + "passed": 1801, + "skipped": 14, + "failed": 0, + "errors": 0, + "duration_s": 187.045, + "skip_reasons": { + "could not import 'databricks.sdk.core': No module named 'databricks'": 1, + "could not import 'oracledb': No module named 'oracledb'": 2, + "SQLite is file-based, no Docker container": 3, + "SQLite does not support sequences": 2, + "SQLite does not have a timezone-aware datetime type": 1, + "DuckDB is file-based, no Docker container": 3, + "DuckDB does not support triggers": 2 + }, + "formal_study_jobs": 152, + "formal_observations": 1349, + "focused_completion_tests": 347, + "focused_scheduler_startup_tests": 50, + "focused_display_tests": 11, + "release_state": "Measured source branch; no release or deployment performed", + "python310": { + "passed": 408, + "skipped": 0, + "failed": 0 + } +} diff --git a/labs/performance/.gitignore b/labs/performance/.gitignore new file mode 100644 index 00000000..48a58e61 --- /dev/null +++ b/labs/performance/.gitignore @@ -0,0 +1 @@ +evidence/ diff --git a/labs/performance/README.md b/labs/performance/README.md new file mode 100644 index 00000000..716368fe --- /dev/null +++ b/labs/performance/README.md @@ -0,0 +1,158 @@ +# sqlit performance laboratory + +[Read the rendered performance paper](https://maxteabag.github.io/sqlit/performance/pr-331/). + +The lab runs the real Textual app in an isolated 120 × 40 pseudo-terminal, +executes the sqlit database adapters against disposable databases, and preserves +raw observations. It never opens saved user connections. The default application +settings and the explicitly disabled process-worker setting are separate startup +conditions. Ordinary UI workload runs use synthetic stores and no query worker. + +## Reproduce + +Create baseline and candidate worktrees and install the same locked dependencies: + +```bash +uv sync --frozen --group dev --extra postgres --extra mysql --extra duckdb +python labs/performance/study.py --baseline /absolute/baseline \ + --candidate /absolute/candidate --python /absolute/candidate/.venv/bin/python \ + --output /absolute/evidence --docker --dry-run +``` + +Remove `--dry-run` to run the study. `--quick` is a smoke run, not a statistical +study. Select `--phases startup,cpu,completion,render,idle` to run without Docker. +The network phase requires the cached `postgres:16-alpine`, `mysql:8.0`, and +`mariadb:11` images. It binds random loopback ports, limits each owned container +to one CPU and 512 MiB, and stops/removes it in `finally`. No external database +endpoint is accepted. Image content hashes are recorded. + +Jobs run sequentially to avoid competing benchmarks. Baseline/candidate order is +randomized with a fixed seed within trial blocks. Receipts allow rerunning the +same command to resume verified jobs. The helper refuses dirty production source +and checks its commit before each job. Re-run a phase into a new output directory +when changing the source or measurement code. + +## Individual experiments + +- `run.py --mode startup`: native startup profiler, external ready observation, + process CPU and terminal bytes. `--imports` enables the existing import tracer + as a diagnostic run, separate from ordinary timing samples. +- `run.py --mode ui`: actual result loading, scrolling and filtering, with 1,000 + to 50,000 rows, wide rows, 10,000-character strings and decimals. +- `run.py --mode completion`: actual application completion/dropdown path with + 1,000 and 5,000 stored routines. +- `run.py --mode idle`: two 5-second steady-state CPU windows. No high-frequency + heartbeat runs during this measurement. The final requested refresh is included. +- `run.py --diagnostics --profile`: native debug event log and 50 ms watchdog, + Chrome trace, cProfile and a known 120 ms blocking control in the UI workload. +- `run.py --workload render_1000_3_long`: run one dataset in a fresh process. +- `cpu_lab.py`: deterministic completion scaling with excluded warmups and output + hashes. Select code with `PYTHONPATH=/absolute/worktree`. +- `database_lab.py --docker --provider postgresql --one-way-ms 20`: actual SQL + through a pipelined TCP relay adding 20 ms in each direction. Counts protocol + bytes in each direction, not packet headers or retransmissions. +- `local_database_lab.py`: SQLite/DuckDB fresh/reused connections, actual + cancellable queries and cold/warm process workers, plus explicit IPC boundaries. + +Every helper accepts `--output`; use `--help` for the remaining arguments. The +database and CPU helpers run with the selected worktree's Python and PYTHONPATH. +The `variants.py` interventions are experimental, loaded only by the lab. The +read-only row backend samples column widths and does not implement production +export/mutation contracts. Do not install it as a production backend. + +## Interpretation + +- Cold process does not mean cold filesystem cache. The separate empty-bytecode + condition redirects Python's bytecode lookup, without dropping host caches. +- First UI refresh, full dataset availability and event-loop delay are distinct. + CPU time is consumed processor time; idle CPU percent is relative to one core. +- The UI sampler observes lateness beyond a 5 ms asyncio sleep. It cannot measure + the terminal emulator's GPU, physical display FPS or battery consumption. + Frame counts are application display calls, not physical screen presentations. +- RSS is process high-water memory where labeled `maxrss_kib`; values from later + workloads in the same process are cumulative. Do not subtract them as per-query + allocations. Process-worker parent CPU excludes the worker's CPU. +- Ordinary result caps can limit Python rows while buffered drivers still receive + all database rows. Explicit LIMIT, PostgreSQL named cursors, and MySQL streaming + cleanup have different semantics; these experiments do not authorize arbitrary + SQL rewriting or removal of cancellation isolation. +- Compare the same workload, boundary and environment. Profilers and synthetic + stall controls are diagnostic evidence, excluded from timing summaries. + +The retained report and machine-readable observations are under +`docs/performance/`. Raw local runs remain under the ignored `evidence/` directory. + +## Statistics, paper and browser verification + +`summarize.py --input EVIDENCE/study --output docs/performance` reads completed +runs, verifies completion-output hashes, calculates descriptive statistics and +paired/independent bootstrap intervals, and emits CSV plus lossless gzip chunks. +`export_evidence.py --evidence EVIDENCE --output docs/performance` packages the +selected named diagnostic pilots and `regression-candidate.xml` from the broader +test lane. It optionally includes `regression-python310.xml`. These diagnostics +and test results are separate prerequisites, not generated by the timed study. + +To rebuild the checked-in paper from its retained data: + +```bash +# Keep plotting dependencies out of the measured app environment. +uv venv /tmp/sqlit-report-env +uv pip install --python /tmp/sqlit-report-env/bin/python \ + -r labs/performance/requirements-report.txt +/tmp/sqlit-report-env/bin/python labs/performance/build_report.py \ + --data docs/performance/data.json + +node labs/performance/verify_report.cjs \ + docs/performance/report.html /absolute/browser-qa \ + /absolute/node_modules/playwright /absolute/chromium +``` + +The browser verifier checks desktop/mobile overflow, all local links, figures, +filtered CSV export, built-in traces, local trace uploads, page errors and +unexpected network requests. Inspect its screenshots as well as the JSON result. +The paper template describes the retained study: after new experiments, review +the narrative, source revisions, population, sample counts and qualifications +before publishing another report. Do not reuse historical prose as fresh evidence. + +For new verification lanes, `verify_code.py --repo REPO --python PYTHON --output +EVIDENCE/regression-candidate` records the isolated broad suite, JUnit and code +provenance. Add `--compatibility` with the older interpreter and output prefix +`EVIDENCE/regression-python310` for the focused compatibility lane. `--dry-run` +inspects either command without executing tests. The published study's original +test logs are retained separately from subsequent reproductions. + +`verify_cells.py --output EVIDENCE/cells-qa.svg` waits for the lazy results widget, +checks 48 complete long/Unicode values and captures a headless 160 × 40 display +fixture. It is visual regression evidence, not a timed database query. Render an +SVG through `verify_report.cjs` using the same browser/module arguments; its SVG +mode uses a fresh headless browser and writes `artifact.png`. + +## Publish a browser-readable report + +Publishing requires the user's authorization. A GitHub `blob` or raw-source URL +does not deliver a rendered interactive page. The current public paper is hosted +under `performance/pr-331/` on this repository's `gh-pages` branch. + +```bash +# Inspect the target and existing Pages configuration first. +python labs/performance/publish_pages.py --repo OWNER/REPO \ + --source docs/performance --path performance/REPORT_NAME + +# Publish the already-reviewed report and adjacent public assets. +python labs/performance/publish_pages.py --repo OWNER/REPO \ + --source docs/performance --path performance/REPORT_NAME --publish + +# Verify the actual anonymous HTTPS page, controls and relative downloads. +node labs/performance/verify_report.cjs https://OWNER.github.io/REPO/performance/REPORT_NAME/ \ + /absolute/live-qa /absolute/node_modules/playwright /absolute/chromium +``` + +The publisher uses a temporary checkout, preserves other Pages paths, and refuses +to replace an existing publishing source or change a Jekyll site's semantics. It +copies the report as both `report.html` and `index.html`, preserves its assets, +fixes the repository-source README link, and writes a source/hash receipt. +Pages can already be correctly configured when a creation call returns an error; +reconcile the actual configuration rather than repeating an external effect. +A build being queued is not delivery: +require the deployed HTML to return 200 with `text/html`, check its content hash, +and run the headless verifier before posting the reading link. diff --git a/labs/performance/build_report.py b/labs/performance/build_report.py new file mode 100644 index 00000000..deae95f1 --- /dev/null +++ b/labs/performance/build_report.py @@ -0,0 +1,407 @@ +#!/usr/bin/env python3 +"""Build a standalone scientific HTML report and exportable SVG figures.""" + +from __future__ import annotations + +import argparse +import html +import json +import re +from pathlib import Path + +import matplotlib + +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import numpy as np + +BLUE = "#245570" +GREEN = "#28725e" +ORANGE = "#b15f34" +GRAY = "#707678" +COLORS = {"baseline": BLUE, "candidate": GREEN, "bulk": ORANGE, "preview-thread": "#9e7040", "timer500": "#82718d", "row-backend": "#34494b"} +LABELS = {"baseline": "Baseline", "candidate": "Implemented changes", "bulk": "Bulk, UI thread", "preview-thread": "Preview + thread", "timer500": "500 rows / timer", "row-backend": "Sampled row backend"} + + +def fmt(value, decimals=1): + if abs(value) < 0.1 and value: + return f"{value:.3f}" + return f"{value:,.{decimals}f}" + + +class Report: + def __init__(self, data, output): + self.data = data + self.output = output + self.figures = {} + self.comparisons = {c["name"]: c for c in data["comparisons"]} + plt.rcParams.update( + { + "font.family": "DejaVu Sans", + "font.size": 10, + "axes.titlesize": 12, + "axes.labelsize": 10, + "axes.spines.top": False, + "axes.spines.right": False, + "axes.edgecolor": "#b2b5b4", + "axes.labelcolor": "#222b30", + "text.color": "#222b30", + "xtick.color": "#465159", + "ytick.color": "#465159", + "figure.facecolor": "white", + "axes.facecolor": "white", + "svg.fonttype": "none", + "svg.hashsalt": "sqlit-performance-study", + "savefig.bbox": "tight", + "grid.color": "#dde1e1", + "grid.linewidth": 0.6, + } + ) + + def group(self, **criteria): + values = [s for s in self.data["summaries"] if all(s.get(k) == v for k, v in criteria.items())] + if len(values) != 1: + raise ValueError((criteria, len(values))) + return values[0] + + def stat(self, metric, **criteria): + return self.group(**criteria)["metrics"][metric] + + def save(self, name, figure, caption): + path = self.output / "figures" / f"{name}.svg" + path.parent.mkdir(exist_ok=True) + figure.savefig(path, metadata={"Date": None, "Creator": "sqlit performance laboratory"}) + plt.close(figure) + svg = "\n".join(line.rstrip() for line in path.read_text().splitlines()) + "\n" + path.write_text(svg) + svg = svg[svg.index("{svg}
{caption} Download SVG
' + + def bars(self, axis, labels, stats, colors=None, horizontal=False, unit=1): + x = np.arange(len(labels)) + med = np.array([s["median"] / unit for s in stats]) + error = np.array([[s["median"] - s["median_ci95"][0] for s in stats], [s["median_ci95"][1] - s["median"] for s in stats]]) / unit + if horizontal: + axis.barh(x, med, color=colors or BLUE, height=0.6, xerr=error, error_kw={"capsize": 3, "elinewidth": 1, "ecolor": "#283339"}) + axis.set_yticks(x, labels) + axis.invert_yaxis() + axis.grid(axis="x") + else: + axis.bar(x, med, color=colors or BLUE, width=0.6, yerr=error, error_kw={"capsize": 3, "elinewidth": 1, "ecolor": "#283339"}) + axis.set_xticks(x, labels) + axis.grid(axis="y") + axis.set_axisbelow(True) + + def plots(self): + fig, axes = plt.subplots(1, 2, figsize=(10.8, 3.9), layout="constrained") + sizes = [100, 1000, 5000] + for variant in ["baseline", "candidate"]: + stats = [self.stat("wall_ms", suite="cpu", scenario="routine_completion", objects=n, variant=variant) for n in sizes] + med = [s["median"] for s in stats] + axes[0].plot(sizes, med, "o-", color=COLORS[variant], label=LABELS[variant], lw=2) + axes[0].fill_between(sizes, [s["median_ci95"][0] for s in stats], [s["median_ci95"][1] for s in stats], color=COLORS[variant], alpha=0.12) + axes[0].set(xscale="log", yscale="log", xlabel="Stored routines", ylabel="Completion function (ms)", title="Algorithm scaling; n = 9 per size") + axes[0].set_xticks(sizes, [str(n) for n in sizes]) + axes[0].grid(which="major") + axes[0].legend(frameon=False) + stats = [self.stat("wall_ms", suite="completion", scenario="autocomplete_5000_routines", variant=v) for v in ["baseline", "candidate"]] + self.bars(axes[1], ["Baseline", "Implemented"], stats, [BLUE, GREEN]) + axes[1].set(ylabel="App completion + dropdown refresh (ms)", title="Actual PTY app; 5,000 routines; n = 9") + for i, s in enumerate(stats): + axes[1].text(i, s["median"] + 45, f"{fmt(s['median'])} ms", ha="center") + self.save( + "completion", + fig, + "Figure 1. Catalog scaling and the actual app completion path. Shading and error bars show 95% bootstrap intervals for the median. Input transport and the existing 100 ms debounce are outside this timing boundary.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 4.1), layout="constrained") + labels = ["Default\nbaseline", "Default\nimplemented", "Disabled\nbaseline", "Disabled\nimplemented", "Empty .pyc\nimplemented"] + criteria = [("default", "baseline"), ("default", "candidate"), ("disabled", "baseline"), ("disabled", "candidate"), ("no-pyc", "candidate")] + stats = [self.stat("parent_ready_ms", suite="startup", scenario=s, variant=v) for s, v in criteria] + self.bars(axes[0], labels, stats, [BLUE, GREEN, BLUE, GREEN, GRAY]) + axes[0].set(ylabel="Launch to observed first refresh (ms)", title="Cold processes; warm filesystem cache") + cpu = [self.stat("process_cpu_ms", suite="startup", scenario=s, variant=v) for s, v in criteria[:4]] + self.bars(axes[1], labels[:4], cpu, [BLUE, GREEN, BLUE, GREEN]) + axes[1].set(ylabel="Launch-and-exit process CPU (ms)", title="Respecting the disabled-worker setting") + self.save( + "startup", + fig, + "Figure 2. Startup wall time and consumed CPU. Normal conditions have 15 trials per source; empty bytecode has seven. " + "Native timing still runs in these trials. CPU covers the first-refresh-and-exit process lifecycle, including reaped child work.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 3.5), layout="constrained") + for ax, scenario, title in zip(axes, ["idle_5s", "editor_idle_5s"], ["Explorer focus", "Editor focus; cursor blinking retained"]): + stats = [self.stat("cpu_ms", suite="idle", scenario=scenario, variant=v) for v in ["baseline", "candidate"]] + self.bars(ax, ["Baseline", "Implemented"], stats, [BLUE, GREEN]) + ax.set(ylabel="Process CPU over 5 seconds (ms)", title=title) + for i, s in enumerate(stats): + ax.text(i, s["median"] + 2, f"{fmt(s['median'])} ms", ha="center") + ax.set_ylim(0, 60) + self.save("idle", fig, "Figure 3. Empty-queue polling costs measurable CPU even when the UI is still. Nine trials per condition, no 5 ms heartbeat during idle windows. The requested final refresh is included in both versions.") + + fig, ax = plt.subplots(figsize=(10.8, 4.6), layout="constrained") + for v in LABELS: + x = self.stat("wall_ms", suite="render", scenario="render_50000_6_normal", variant=v) + y = self.stat("max_loop_delay_ms", suite="render", scenario="render_50000_6_normal", variant=v) + cpu = self.stat("cpu_ms", suite="render", scenario="render_50000_6_normal", variant=v)["median"] + ax.errorbar(x["median"], y["median"], xerr=[[x["median"] - x["median_ci95"][0]], [x["median_ci95"][1] - x["median"]]], fmt="none", color=COLORS[v], capsize=3, alpha=0.7) + ax.scatter(x["median"], y["median"], s=40 + cpu * 0.3, color=COLORS[v], label=f"{LABELS[v]} ({cpu:.0f} CPU ms)") + ax.axhline(16.7, color="#b6b8b8", linestyle="--", lw=1) + ax.text(160, 17.6, "16.7 ms excess-delay reference", color=GRAY, fontsize=9) + ax.set(xscale="log", xlabel="Time until all 50,000 rows are available (ms)", ylabel="Median of per-trial maximum loop lateness (ms)", title="Rendering trade-offs; 50,000 × 6 cells; n = 5") + ax.grid(axis="both", alpha=0.5) + ax.legend(frameon=False, loc="upper left", bbox_to_anchor=(1.01, 1), fontsize=9) + self.save( + "render-tradeoffs", + fig, + "Figure 4. Faster completion can create worse stutter. Marker area scales with CPU, and horizontal error bars show median time uncertainty. " + "Lateness is excess beyond a 5 ms sleep; the dashed line is a diagnostic reference, not proof of physical 60 FPS.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 3.8), layout="constrained") + variants = ["baseline", "candidate", "bulk", "preview-thread", "timer500", "row-backend"] + stats = [self.stat("terminal_bytes", suite="render", scenario="render_50000_6_normal", variant=v) for v in variants] + self.bars(axes[0], [LABELS[v] for v in variants], stats, [COLORS[v] for v in variants], horizontal=True, unit=1000) + axes[0].set(xlabel="Terminal payload (kB, decimal)", title="Result-loading output volume") + stats = [self.stat("maxrss_kib", suite="render", scenario="render_50000_6_normal", variant=v) for v in variants] + self.bars(axes[1], [LABELS[v] for v in variants], stats, [COLORS[v] for v in variants], horizontal=True, unit=1024) + axes[1].set(xlabel="Process high-water RSS (MiB)", title="Memory by this point in the fixed sequence") + self.save( + "render-resources", + fig, + "Figure 5. Terminal bytes and cumulative peak RSS at the 50,000-row workload. RSS includes imports and earlier workloads; " + "it is not an allocation measurement for this query. The sampled backend still runs inside the existing Arrow-dependent application.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 3.5), layout="constrained") + for axis, metric, title in zip(axes, ["cpu_ms", "wall_ms"], ["Consumed CPU", "Full result availability"]): + stats = [self.stat(metric, suite="long-cells", scenario="render_1000_3_long", variant=v) for v in ["baseline", "candidate"]] + self.bars(axis, ["Baseline", "Implemented"], stats, [BLUE, GREEN]) + axis.set(ylabel="Milliseconds", title=title) + self.save( + "long-cells", + fig, + "Figure 6. Isolated long-cell workload: 1,000 rows, three columns, 10,000-character text, five fresh processes per source. The wide uncertainty prevents a reliable end-to-end speedup claim for the clipping change.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 4.0), layout="constrained") + providers = ["postgresql", "mysql", "mariadb"] + names = ["PostgreSQL", "MySQL", "MariaDB"] + scenarios = ["buffered_cap_1000", "server_limit_1001", "stream_fetch_cleanup"] + colors = [BLUE, GREEN, ORANGE] + legend = ["Buffered cap: 1,000", "Explicit LIMIT 1,001", "Streaming + cleanup"] + x = np.arange(3) + for i, (scenario, color, label) in enumerate(zip(scenarios, colors, legend)): + groups = [self.group(suite="network", scenario=scenario, provider=p, one_way_delay_ms=20) for p in providers] + axes[0].bar(x + (i - 1) * 0.24, [g["metrics"]["rx_bytes"]["median"] / 1e6 for g in groups], width=0.22, color=color, label=label) + axes[1].bar(x + (i - 1) * 0.24, [g["metrics"]["wall_ms"]["median"] for g in groups], width=0.22, color=color, label=label) + for ax in axes: + ax.set_xticks(x, names) + ax.set_axisbelow(True) + ax.grid(axis="y") + axes[0].set(ylabel="Received protocol payload (MB, decimal)", title="A Python row cap is not a network cap") + axes[1].set(ylabel="Operation wall time (ms)", title="40 ms injected round-trip latency") + axes[0].legend(frameon=False, fontsize=8) + self.save( + "network-limits", + fig, + "Figure 7. All bounded result variants verify rows 1–1,000 and truncation. Streaming includes cursor cleanup and a subsequent SELECT 1. " + "PostgreSQL named cursors avoid full transfer; MySQL/MariaDB SSCursor cleanup still consumes the remaining result. Nine trials per condition.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 4.1), layout="constrained") + x = np.arange(3) + for i, (scenario, label, color) in enumerate(zip(["metadata_per_table", "metadata_one_query_per_table", "metadata_batch"], ["Two queries / table", "One query / table", "One batch / 20 tables"], [BLUE, ORANGE, GREEN])): + for ax, delay in zip(axes, [0, 20]): + values = [self.stat("wall_ms", suite="network", scenario=scenario, provider=p, one_way_delay_ms=delay)["median"] for p in providers] + ax.bar(x + (i - 1) * 0.24, values, width=0.22, label=label, color=color) + for ax, title in zip(axes, ["Loopback relay, no added delay", "40 ms injected round-trip latency"]): + ax.set_xticks(x, names) + ax.set(ylabel="20-table metadata time (ms)", title=title) + ax.grid(axis="y") + ax.set_axisbelow(True) + axes[0].legend(frameon=False, fontsize=8) + self.save( + "network-metadata", + fig, + "Figure 8. Reducing metadata round trips dominates at latency. Every strategy returns the same 80 ordered columns and primary-key flags for 20 owned fixture tables. " + "These are explicit catalog-scan experiments, not measurements of the default lazy connection flow.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 3.8), layout="constrained") + for i, (scenario, label, color) in enumerate([("connect_query_close", "Fresh connection + query", BLUE), ("reuse_query", "Reused connection + query", GREEN)]): + for ax, delay in zip(axes, [0, 20]): + values = [self.stat("wall_ms", suite="network", scenario=scenario, provider=p, one_way_delay_ms=delay)["median"] for p in providers] + ax.bar(x + (i - 0.5) * 0.3, values, width=0.28, color=color, label=label) + for ax, title in zip(axes, ["Loopback relay, no added delay", "40 ms injected round-trip latency"]): + ax.set_xticks(x, names) + ax.set(ylabel="SELECT 1 operation (ms)", title=title) + ax.grid(axis="y") + ax.set_axisbelow(True) + axes[0].legend(frameon=False, fontsize=8) + self.save( + "connection-reuse", + fig, + "Figure 9. Measured connection reuse opportunity. These connections use local disposable credentials and no TLS. " + "The current cancellable query path deliberately creates dedicated connections; safe pooling must preserve cancellation, transaction and session-state boundaries.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 4.2), layout="constrained") + local_scenarios = ["reuse_select1", "connect_select1_close", "cancellable_select1", "worker_warm_select1", "worker_cold_select1"] + local_labels = ["Reuse", "Connect / query / close", "Cancellable query", "Warm worker", "Cold worker / shutdown"] + for ax, provider in zip(axes, ["sqlite", "duckdb"]): + stats = [self.stat("wall_ms", suite="local", scenario=s, provider=provider) for s in local_scenarios] + self.bars(ax, local_labels, stats, [GREEN, GRAY, BLUE, ORANGE, "#7c5666"], horizontal=True) + ax.set(xscale="log", xlabel="SELECT 1 operation (ms, log scale)", title=provider) + self.save( + "local-workers", + fig, + "Figure 10. Embedded database connections and actual process-worker costs; nine trials each. Cold worker includes creation, execution and shutdown. " + "DuckDB worker runs are forced laboratory comparisons with read-only files; the adapter disables that route in the normal UI.", + ) + + fig, axes = plt.subplots(1, 2, figsize=(10.8, 4.2), layout="constrained") + ipc_scenarios = ["pickle_roundtrip", "arrow_python_roundtrip", "arrow_none_roundtrip", "arrow_lz4_roundtrip", "arrow_zstd_roundtrip"] + ipc_labels = ["Pickle: Python → Python", "Arrow: Python → Python", "Arrow: prepared → prepared", "Arrow LZ4: prepared", "Arrow Zstd: prepared"] + for ax, pattern in zip(axes, ["repeated", "varied"]): + stats = [self.stat("wall_ms", suite="ipc", scenario=s, pattern=pattern) for s in ipc_scenarios] + self.bars(ax, ipc_labels, stats, [BLUE, GREEN, GRAY, ORANGE, "#7c5666"], horizontal=True) + ax.set(xlabel="Serialization + read-back (ms)", title=f"50,000 rows; {pattern} 256-character text") + self.save( + "ipc", + fig, + "Figure 11. Representation boundaries determine the result. The first two rows include Python-to-Python round trips; " + "the last three start and end as Arrow tables and exclude conversion. Each decoded result is checked for equality. " + "Repeated strings are independent objects, avoiding artificial pickle memoization.", + ) + + def comparison_table(self, names): + rows = [] + for name in names: + c = self.comparisons[name] + ci = " to ".join(fmt(x) for x in c["reduction_ci95"]) + signal = "Interval crosses zero" if c["reduction_ci95"][0] <= 0 <= c["reduction_ci95"][1] else "Observed reduction" if c["reduction_percent"] > 0 else "Observed increase" + before = c["before"] + after = c["after"] + metric = c["metric"] + if before["suite"] == "completion": + label = f"App completion · {before['scenario'].split('_')[1]} routines" + elif before["suite"] == "startup": + label = ("Launch CPU" if metric == "process_cpu_ms" else "First refresh") + " · worker " + before["scenario"] + elif before["suite"] == "idle": + label = "Idle CPU · " + ("editor" if before["scenario"].startswith("editor") else "explorer") + elif before["suite"] == "long-cells": + label = "Long cells · " + ("CPU" if metric == "cpu_ms" else "availability") + elif before["suite"] == "render": + label = LABELS[after["variant"]] + " · " + {"wall_ms": "availability", "cpu_ms": "CPU", "max_loop_delay_ms": "maximum loop lateness", "terminal_bytes": "terminal bytes"}[metric] + else: + label = ( + before.get("provider", "").title() + + " · " + + {"server_limit_1001": "bounded query", "metadata_one_query_per_table": "one query / table", "metadata_batch": "metadata batch", "reuse_query": "connection reuse"}.get(after["scenario"], after["scenario"]) + ) + unit = "bytes" if metric.endswith("bytes") else "ms" + rows.append( + f'{html.escape(label)} ({unit})' + f'{fmt(c["before_median"])}{fmt(c["after_median"])}{fmt(c["saved"])}' + f'{fmt(c["reduction_percent"])}%{ci}%{c["n_before"]}/{c["n_after"]}{signal}' + ) + return ( + '
' + + "".join(rows) + + "
ComparisonBeforeAfterSavedReduction95% intervalnReading
" + ) + + def build(self, template): + self.plots() + contents = template.read_text() + replacements = {f"@@figure-{k}@@": v for k, v in self.figures.items()} + primary = ["completion-ui-1000", "completion-ui-5000", "startup-ready-disabled", "startup-cpu-disabled", "startup-ready-default", "startup-cpu-default", "idle-idle_5s", "idle-editor_idle_5s", "long-cells-cpu", "long-cells-wall"] + replacements["@@primary-table@@"] = self.comparison_table(primary) + replacements["@@network-table@@"] = self.comparison_table([f"{label}-{p}-20" for p in ["postgresql", "mysql", "mariadb"] for label in ["bounded-query", "metadata-one-query", "metadata-batch", "connection-reuse"]]) + replacements["@@render-table@@"] = self.comparison_table([f"render50k-{v}-{m}" for v in ["bulk", "preview-thread", "timer500", "row-backend"] for m in ["wall_ms", "cpu_ms", "max_loop_delay_ms", "terminal_bytes"]]) + replacements["@@record-count@@"] = str(self.data["record_count"]) + validation_path = self.output / "validation.json" + validation = json.loads(validation_path.read_text()) if validation_path.exists() else {} + if validation: + reasons = "; ".join(f"{html.escape(reason)} ({count})" for reason, count in validation["skip_reasons"].items()) + replacements["@@validation@@"] = ( + f"

{validation['passed']:,} tests passed; {validation['skipped']} skipped; " + f"{validation['failed']} failed. The broader lane ran the unit, UI, CLI, SQLite and DuckDB suites. " + f'The focused lanes are subsets and are not added to this total.

Skip reasons: {reasons}. ' + "These skips do not stand in for live provider verification. Existing CLI lint findings were checked against the baseline; " + "the touched production files introduce no new lint category in that comparison. " + 'Download validation details.

' + ) + if validation.get("python310"): + compatibility = validation["python310"] + replacements["@@validation@@"] += ( + f"

A separate Python 3.10 compatibility lane passed {compatibility['passed']} targeted tests, " + f"with {compatibility['failed']} failures and {compatibility['skipped']} skips. These tests overlap the main lane and are reported separately.

" + ) + else: + raise RuntimeError("Run export_evidence.py to attach final regression results before building the paper") + replacements["@@trace-examples@@"] = (self.output / "trace-examples.json").read_text().replace("<", "\\u003c") + browser_metrics = { + "wall_ms", + "cpu_ms", + "process_cpu_ms", + "parent_ready_ms", + "max_loop_delay_ms", + "terminal_bytes", + "rx_bytes", + "tx_bytes", + "parent_cpu_ms", + "client_cpu_ms", + "maxrss_kib", + "bytes", + "first_result_refresh_ms", + "worker_reported_ms", + } + browser_stats = {"n", "median", "median_ci95", "p95", "min", "max"} + browser_data = { + "summaries": [ + {**{k: v for k, v in s.items() if k != "metrics"}, "metrics": {k: {stat: value for stat, value in v.items() if stat in browser_stats} for k, v in s["metrics"].items() if k in browser_metrics}} for s in self.data["summaries"] + ] + } + + def compact_numbers(value): + if isinstance(value, float): + return float(f"{value:.8g}") + if isinstance(value, list): + return [compact_numbers(v) for v in value] + if isinstance(value, dict): + return {k: compact_numbers(v) for k, v in value.items()} + return value + + replacements["@@data@@"] = json.dumps(compact_numbers(browser_data), separators=(",", ":")).replace("<", "\\u003c") + manifest = json.loads((self.output / "raw" / "manifest.json").read_text()) + replacements["@@raw-links@@"] = " ".join(f'{r["file"]}' for r in manifest) + for name, c in self.comparisons.items(): + for key in ["before_median", "after_median", "saved", "reduction_percent"]: + replacements[f"@@{name}:{key}@@"] = fmt(c[key]) + for key, value in replacements.items(): + contents = contents.replace(key, value) + if re.search(r"@@[^@]+@@", contents): + raise RuntimeError("Unresolved template values: " + str(re.findall(r"@@[^@]+@@", contents))) + (self.output / "report.html").write_text(contents) + print(f"Wrote {self.output / 'report.html'}: {len(contents.encode()):,} bytes; {len(self.figures)} figures") + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--data", required=True) + parser.add_argument("--template", default=str(Path(__file__).with_name("report.html.in"))) + args = parser.parse_args() + path = Path(args.data) + Report(json.loads(path.read_text()), path.parent).build(Path(args.template)) + + +if __name__ == "__main__": + main() diff --git a/labs/performance/cpu_lab.py b/labs/performance/cpu_lab.py new file mode 100644 index 00000000..0fb611de --- /dev/null +++ b/labs/performance/cpu_lab.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""CPU scaling and allocation probes with deterministic synthetic SQL metadata.""" +from __future__ import annotations + +import argparse +import cProfile +import hashlib +import json +import os +import resource +import time +from pathlib import Path + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument("--sizes",default="100,1000,5000") + parser.add_argument("--repeat",type=int,default=7) + parser.add_argument("--output",required=True) + parser.add_argument("--profile",action="store_true") + args=parser.parse_args() + from sqlit.domains.connections.providers.adapters.base import RoutineInfo + from sqlit.domains.query.completion import get_completions + records=[] + for count in map(int,args.sizes.split(',')): + routines=[RoutineInfo(f"proc_{i:05d}",schema="dbo",database="lab") for i in range(count)] + tables=[f"public.table_{i:05d}" for i in range(count)] + workloads=[("routine_completion","EXEC proc_",[],routines), + ("table_completion","SELECT * FROM public.table_",tables,[]), + ("unrelated_completion","SELECT ",[],routines), + ("blank_completion","",[],routines)] + for name,sql,table_input,routine_input in workloads: + expected=None + get_completions(sql,len(sql),table_input,{},routine_input) # excluded warmup + for iteration in range(args.repeat): + profiler=cProfile.Profile() if args.profile else None + if profiler: + profiler.enable() + cpu,wall=time.process_time(),time.perf_counter() + values=get_completions(sql,len(sql),table_input,{},routine_input) + wall_ms=(time.perf_counter()-wall)*1000 + cpu_ms=(time.process_time()-cpu)*1000 + if profiler: + profiler.disable() + digest=hashlib.sha256(json.dumps(values).encode()).hexdigest() + if expected is None: + expected=digest + assert digest==expected + if name=="blank_completion": + assert values==[] + if name=="routine_completion": + assert len(values)==min(count,50) and "proc_00000" in values + record={"scenario":name,"objects":count,"iteration":iteration, + "wall_ms":wall_ms,"cpu_ms":cpu_ms,"suggestions":len(values), + "digest":digest,"maxrss_kib":resource.getrusage(resource.RUSAGE_SELF).ru_maxrss, + "loadavg":os.getloadavg()} + records.append(record) + print(json.dumps(record),flush=True) + if profiler: + profiler.dump_stats(f"{args.output}.{name}-{count}-{iteration}.pstats") + Path(args.output).write_text(json.dumps(records,indent=2)) + + +if __name__=="__main__": + main() diff --git a/labs/performance/database_lab.py b/labs/performance/database_lab.py new file mode 100644 index 00000000..4dc3a7f0 --- /dev/null +++ b/labs/performance/database_lab.py @@ -0,0 +1,304 @@ +#!/usr/bin/env python3 +"""Measure sqlit against disposable local databases and a latency/byte relay. + +Docker opt-in is explicit. Public lab credentials are never used elsewhere. +The relay counts protocol payload bytes, not Ethernet/TCP retransmissions. It +adds one-way delivery latency using pipelined queues, not sleeps per SQL call. +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import multiprocessing as mp +import os +import random +import resource +import subprocess +import tempfile +import time +import uuid +from contextlib import contextmanager +from pathlib import Path + + +async def _relay_server(target_port, delay_ms, counts, control): + async def forward(reader, writer, direction): + queue = asyncio.Queue(maxsize=64) + async def receive(): + try: + while data := await reader.read(65536): + await queue.put((asyncio.get_running_loop().time()+delay_ms/1000, data)) + finally: + await queue.put((0, None)) + async def send(): + try: + while True: + due, data = await queue.get() + if data is None: + break + await asyncio.sleep(max(0, due-asyncio.get_running_loop().time())) + writer.write(data) + await writer.drain() + with counts.get_lock(): + counts[direction] += len(data) + finally: + writer.close() + await asyncio.gather(receive(), send()) + async def connect(reader, writer): + try: + remote_reader, remote_writer = await asyncio.open_connection("127.0.0.1", target_port) + await asyncio.gather(forward(reader, remote_writer, 0), forward(remote_reader, writer, 1)) + except (ConnectionError, OSError): + writer.close() + server = await asyncio.start_server(connect, "127.0.0.1", 0) + control.send(server.sockets[0].getsockname()[1]) + async with server: + await server.serve_forever() + + +def relay_main(target_port, delay_ms, counts, control): + asyncio.run(_relay_server(target_port, delay_ms, counts, control)) + + +@contextmanager +def relay(port: int, one_way_ms: float): + context = mp.get_context("spawn") + counts = context.Array("Q", [0,0]) + parent, child = context.Pipe() + process = context.Process(target=relay_main, args=(port, one_way_ms, counts, child), daemon=True) + process.start() + try: + if not parent.poll(10): + raise TimeoutError("Relay did not start") + yield parent.recv(), counts + finally: + process.terminate() + process.join(10) + parent.close() + child.close() + + +@contextmanager +def disposable_database(provider: str): + name = f"sqlit-perf-{provider}-{uuid.uuid4().hex[:8]}" + image = {"postgresql":"postgres:16-alpine", "mysql":"mysql:8.0", "mariadb":"mariadb:11"}[provider] + image_id = subprocess.check_output(["docker", "image", "inspect", "--format", "{{.Id}}", image], text=True).strip() + database_port = "5432" if provider == "postgresql" else "3306" + env = ["POSTGRES_USER=lab", "POSTGRES_PASSWORD=lab", "POSTGRES_DB=lab"] if provider == "postgresql" else [ + "MARIADB_ROOT_PASSWORD=lab", "MARIADB_DATABASE=lab", "MARIADB_USER=lab", "MARIADB_PASSWORD=lab"] + if provider == "mysql": + env = [value.replace("MARIADB_", "MYSQL_") for value in env] + command = ["docker", "run", "--detach", "--pull=never", "--name", name, + "--label", "sqlit.performance-lab=true", "--cpus=1", "--memory=512m", + "--memory-swap=512m", "-p", f"127.0.0.1::{database_port}"] + for entry in env: + command += ["-e", entry] + command += [image] + subprocess.run(command, check=True, stdout=subprocess.DEVNULL) + try: + port = int(subprocess.check_output(["docker", "port", name, f"{database_port}/tcp"], text=True).strip().rsplit(":",1)[1]) + yield port, {"container":name,"image":image,"image_id":image_id,"cpus":1,"memory_mib":512} + finally: + subprocess.run(["docker", "stop", "--time", "20", name], check=True, stdout=subprocess.DEVNULL) + status = subprocess.check_output(["docker", "inspect", "--format", "{{json .State}}", name], text=True) + print("container stopped", name, status.strip(), flush=True) + subprocess.run(["docker", "rm", "-v", name], check=True, stdout=subprocess.DEVNULL) + + +def config_for(provider, port): + from sqlit.domains.connections.domain.config import ConnectionConfig, TcpEndpoint + return ConnectionConfig(name="disposable-perf", db_type=provider, + endpoint=TcpEndpoint(host="127.0.0.1", port=str(port), + database="lab",username="lab",password="lab"), + options={"tls_mode":"disable"}) + + +def connect_ready(provider, config): + from sqlit.domains.connections.app.session import ConnectionSession + deadline = time.monotonic()+90 + error = None + while time.monotonic() < deadline: + try: + session = ConnectionSession.create(config) + result = session.provider.query_executor.execute_query(session.connection,"SELECT 1",1) + assert result[1] == [(1,)] + return session + except Exception as exc: + error = exc + time.sleep(.5) + raise RuntimeError(f"Real {provider} SELECT 1 readiness failed: {error}") + + +def prepare_database(provider, session): + connection = session.connection + cursor = connection.cursor() + for i in range(20): + cursor.execute(f"CREATE TABLE lab_t_{i:02d} (id INTEGER PRIMARY KEY, name VARCHAR(120), amount DECIMAL(18,4), note TEXT)") + cursor.execute("CREATE TABLE lab_rows (id INTEGER PRIMARY KEY, payload VARCHAR(300))") + if provider == "postgresql": + cursor.execute("INSERT INTO lab_rows SELECT i, repeat('x',256) FROM generate_series(1,50000) i") + else: + cursor.executemany("INSERT INTO lab_rows VALUES (%s,%s)", [(i,"x"*256) for i in range(1,50001)]) + connection.commit() + cursor.close() + + +def run_network(provider, port, args, records): + from sqlit.domains.connections.app.session import ConnectionSession + from sqlit.domains.connections.providers.catalog import get_provider + adapter = get_provider(provider).connection_factory + with relay(port, args.one_way_ms) as (proxy_port, counts): + config = config_for(provider, proxy_port) + session = ConnectionSession.create(config) + connection = session.connection + def measured(name, callback, iteration): + start_bytes = list(counts) + before = time.perf_counter() + cpu = time.process_time() + result = callback() + cpu_ms = (time.process_time()-cpu)*1000 + wall_ms = (time.perf_counter()-before)*1000 + # A final protocol QUIT may still be in the latency queue after + # driver.close() returns. Attribute it here, not to the next case. + time.sleep(max(.02,2*args.one_way_ms/1000+.01)) + end_bytes = list(counts) + record = {"provider":provider,"scenario":name,"iteration":iteration, + "one_way_delay_ms":args.one_way_ms,"wall_ms":wall_ms,"client_cpu_ms":cpu_ms, + "tx_bytes":end_bytes[0]-start_bytes[0],"rx_bytes":end_bytes[1]-start_bytes[1], + "maxrss_kib":resource.getrusage(resource.RUSAGE_SELF).ru_maxrss, + **(result or {})} + records.append(record) + print(json.dumps(record),flush=True) + def new_connection(): + with ConnectionSession.create(config) as fresh: + assert adapter.execute_query(fresh.connection,"SELECT 1",1)[1] == [(1,)] + def reused_connection(): + assert adapter.execute_query(connection,"SELECT 1",1)[1] == [(1,)] + def buffered(): + _,rows,truncated = adapter.execute_query(connection,"SELECT * FROM lab_rows ORDER BY id",1000) + assert len(rows)==1000 and rows[0][0]==1 and rows[-1][0]==1000 and truncated + return {"rows_returned":len(rows),"truncated":truncated} + def server_limit(): + _,rows,truncated = adapter.execute_query(connection,"SELECT * FROM lab_rows ORDER BY id LIMIT 1001",1000) + assert len(rows)==1000 and rows[-1][0]==1000 and truncated + return {"rows_returned":len(rows),"truncated":truncated} + expected_metadata = {} + def per_table(): + for i in range(20): + table = f"lab_t_{i:02d}" + columns = adapter.get_columns(connection,table,"lab","public" if provider=="postgresql" else None) + assert len(columns)==4 and columns[0].is_primary_key + expected_metadata[table] = [(c.name,c.data_type,c.is_primary_key) for c in columns] + return {"tables":20,"columns_returned":80} + def bulk_metadata(): + cursor = connection.cursor() + if provider == "postgresql": + cursor.execute("""SELECT c.table_name,c.column_name,c.data_type, + EXISTS(SELECT 1 FROM information_schema.table_constraints tc + JOIN information_schema.key_column_usage k + ON k.constraint_catalog=tc.constraint_catalog AND k.constraint_schema=tc.constraint_schema + AND k.constraint_name=tc.constraint_name AND k.table_name=tc.table_name + WHERE tc.constraint_type='PRIMARY KEY' AND tc.table_schema=c.table_schema + AND tc.table_name=c.table_name AND k.column_name=c.column_name) + FROM information_schema.columns c WHERE c.table_schema='public' AND c.table_name LIKE 'lab_t_%%' + ORDER BY c.table_name,c.ordinal_position""") + else: + cursor.execute("""SELECT table_name,column_name,data_type,column_key='PRI' + FROM information_schema.columns WHERE table_schema='lab' AND table_name LIKE 'lab_t_%%' + ORDER BY table_name,ordinal_position""") + actual = {} + for table,name,kind,pk in cursor.fetchall(): + actual.setdefault(table,[]).append((name,kind,bool(pk))) + cursor.close() + assert actual == expected_metadata, (actual,expected_metadata) + return {"tables":len(actual),"columns_returned":sum(map(len,actual.values()))} + def one_query_metadata(): + cursor = connection.cursor() + for table, expected in expected_metadata.items(): + if provider == "postgresql": + cursor.execute("""SELECT c.column_name,c.data_type, + EXISTS(SELECT 1 FROM information_schema.table_constraints tc + JOIN information_schema.key_column_usage k + ON k.constraint_catalog=tc.constraint_catalog AND k.constraint_schema=tc.constraint_schema + AND k.constraint_name=tc.constraint_name AND k.table_name=tc.table_name + WHERE tc.constraint_type='PRIMARY KEY' AND tc.table_schema=c.table_schema + AND tc.table_name=c.table_name AND k.column_name=c.column_name) + FROM information_schema.columns c WHERE c.table_schema=%s AND c.table_name=%s + ORDER BY c.ordinal_position""", ("public",table)) + else: + cursor.execute("""SELECT column_name,data_type,column_key='PRI' + FROM information_schema.columns WHERE table_schema=%s AND table_name=%s + ORDER BY ordinal_position""", ("lab",table)) + assert [(n,t,bool(p)) for n,t,p in cursor.fetchall()] == expected + cursor.close() + return {"tables":20,"columns_returned":80} + def streaming(): + start = time.perf_counter() + before = list(counts) + if provider=="postgresql": + connection.autocommit=False + cursor = connection.cursor(name="sqlit_perf_cursor") + else: + from pymysql.cursors import SSCursor + cursor = connection.cursor(SSCursor) + cursor.execute("SELECT * FROM lab_rows ORDER BY id") + rows = cursor.fetchmany(1001) + first_fetch_ms=(time.perf_counter()-start)*1000 + first_fetch_rx=list(counts)[1]-before[1] + assert len(rows)==1001 and rows[-1][0]==1001 + cursor.close() # MySQL must drain unread rows to preserve this session. + if provider=="postgresql": + connection.rollback() + connection.autocommit=True + assert adapter.execute_query(connection,"SELECT 1",1)[1] == [(1,)] + return {"first_fetch_ms":first_fetch_ms,"first_fetch_rx_bytes":first_fetch_rx,"rows_returned":1000,"truncated":True} + try: + # Characterization/validation precedes all timed metadata comparisons. + per_table() + bulk_metadata() + cases={"connect_query_close":new_connection,"reuse_query":reused_connection, + "buffered_cap_1000":buffered,"server_limit_1001":server_limit, + "metadata_per_table":per_table,"metadata_batch":bulk_metadata, + "metadata_one_query_per_table":one_query_metadata, + "stream_fetch_cleanup":streaming} + rng=random.Random(73) + for iteration in range(args.repeat): + names=list(cases) + rng.shuffle(names) + for name in names: + measured(name,cases[name],iteration) + finally: + session.close() + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument("--docker",action="store_true",help="Authorize creation/removal of labeled local PostgreSQL/MariaDB containers") + parser.add_argument("--provider",choices=["postgresql","mysql","mariadb"],required=True) + parser.add_argument("--repeat",type=int,default=7) + parser.add_argument("--one-way-ms",type=float,default=0) + parser.add_argument("--output",required=True) + args=parser.parse_args() + if not args.docker: + parser.error("--docker is required; no external database endpoints are accepted") + output=Path(args.output).resolve() + output.parent.mkdir(parents=True,exist_ok=True) + records=[] + with tempfile.TemporaryDirectory(prefix="sqlit-db-perf-") as temp: + os.environ["SQLIT_CONFIG_DIR"]=temp + os.environ["SQLIT_WORKER_LOG"]=str(Path(temp)/"worker.log") + with disposable_database(args.provider) as (port,metadata): + session=connect_ready(args.provider,config_for(args.provider,port)) + try: + prepare_database(args.provider,session) + finally: + session.close() + try: + run_network(args.provider,port,args,records) + finally: + output.write_text(json.dumps({"metadata":metadata,"records":records},indent=2)) + + +if __name__=="__main__": + main() diff --git a/labs/performance/export_evidence.py b/labs/performance/export_evidence.py new file mode 100644 index 00000000..19823b00 --- /dev/null +++ b/labs/performance/export_evidence.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python3 +"""Attach regression counts and selected diagnostic recordings to the paper.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import shutil +import subprocess +import zipfile +from collections import Counter +from pathlib import Path +from xml.etree import ElementTree as ET + + +def passed_in(path): + match = re.search(r"(\d+) passed", path.read_text()) + return int(match.group(1)) if match else None + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--evidence", required=True) + parser.add_argument("--output", required=True) + args = parser.parse_args() + root, out = Path(args.evidence), Path(args.output) + diag = out / "diagnostics" + diag.mkdir(exist_ok=True) + tree = ET.parse(root / "regression-candidate.xml").getroot() + suites = list(tree.iter("testsuite")) + total = sum(int(s.attrib["tests"]) for s in suites) + skipped = sum(int(s.attrib["skipped"]) for s in suites) + failed = sum(int(s.attrib["failures"]) for s in suites) + errors = sum(int(s.attrib["errors"]) for s in suites) + data = json.loads((out / "data.json").read_text()) + validation = { + "source_sha": data["environments"][0]["source_commits"]["candidate"], + "suite": "tests/unit tests/ui tests/cli tests/test_sqlite.py tests/test_duckdb.py", + "passed": total - skipped - failed - errors, + "skipped": skipped, + "failed": failed, + "errors": errors, + "duration_s": sum(float(s.attrib["time"]) for s in suites), + "skip_reasons": dict(Counter(x.attrib.get("message", "") for x in tree.iter("skipped"))), + "formal_study_jobs": len(list((root / "study" / "receipts").glob("*.json"))), + "formal_observations": data["record_count"], + "focused_completion_tests": passed_in(root / "completion-green.txt"), + "focused_scheduler_startup_tests": passed_in(root / "idle-startup-tests.txt"), + "focused_display_tests": passed_in(root / "display-tests.txt"), + "release_state": "Measured source branch; no release or deployment performed", + } + if failed or errors: + raise RuntimeError("Resolve or explicitly document regression failures before publishing the report") + if (root / "regression-python310.xml").exists(): + compatible = ET.parse(root / "regression-python310.xml").getroot() + compatible_suites = list(compatible.iter("testsuite")) + ct = sum(int(s.attrib["tests"]) for s in compatible_suites) + cs = sum(int(s.attrib["skipped"]) for s in compatible_suites) + cf = sum(int(s.attrib["failures"]) + int(s.attrib["errors"]) for s in compatible_suites) + validation["python310"] = {"passed": ct - cs - cf, "skipped": cs, "failed": cf} + if cf: + raise RuntimeError("Compatibility lane has failures") + (out / "validation.json").write_text(json.dumps(validation, indent=2) + "\n") + examples = {} + for name in ["baseline", "candidate"]: + path = root / f"probe-completion-ui-{name}" / "run-000" / "ui.trace.json" + raw = json.loads(path.read_text()) + examples[name] = { + "spans": [[round(e["ts"], 2), round(e["dur"], 2), e["name"]] for e in raw["traceEvents"] if e["ph"] == "X"], + "delays": [[round(e["ts"], 2), round(e["args"]["delay_ms"], 4)] for e in raw["traceEvents"] if e["ph"] == "C"], + } + (diag / f"completion-{name}.trace.json").write_text(path.read_text().rstrip() + "\n") + examples["note"] = "Dedicated diagnostics-enabled pilots; separate from formal low-overhead trials." + (out / "trace-examples.json").write_text(json.dumps(examples, separators=(",", ":")) + "\n") + files = [ + root / "completion-baseline.speedscope.json", + root / "probe-ui" / "run-000" / "ui.pstats", + root / "probe-ui" / "run-000" / "ui.watchdog.txt", + root / "probe-ui" / "run-000" / "ui.debug.jsonl", + root / "probe-startup" / "run-000" / "imports.txt", + root / "probe-startup" / "run-000" / "startup.txt", + root / "regression-candidate.xml", + root / "regression-candidate.log", + root / "completion-red.txt", + root / "completion-green.txt", + root / "idle-startup-tests.txt", + root / "display-tests.txt", + ] + files.extend(p for p in [root / "regression-python310.xml", root / "regression-python310.log"] if p.exists()) + if (root / "cells-visual" / "artifact.png").exists(): + shutil.copy2(root / "cells-visual" / "artifact.png", diag / "cells.png") + with zipfile.ZipFile(diag / "diagnostics.zip", "w", compression=zipfile.ZIP_DEFLATED, compresslevel=9) as archive: + for file in files: + archive.write(file, arcname=str(file.relative_to(root))) + checks = [{"file": str(p.relative_to(out)), "sha256": hashlib.sha256(p.read_bytes()).hexdigest(), "bytes": p.stat().st_size} for p in sorted(diag.iterdir()) if p.name != "manifest.json"] + (diag / "manifest.json").write_text(json.dumps(checks, indent=2) + "\n") + environment = data["environments"][0] + lab_snapshot = None + revisions = subprocess.check_output(["git", "log", "--format=%H", "--", "labs/performance/run.py"], text=True).splitlines() + for revision in revisions: + matches = True + for name, expected in environment["lab_files_sha256"].items(): + candidate = subprocess.run(["git", "show", f"{revision}:labs/performance/{name}"], capture_output=True) + if candidate.returncode or hashlib.sha256(candidate.stdout).hexdigest() != expected: + matches = False + break + if matches: + lab_snapshot = revision + break + if lab_snapshot is None: + raise RuntimeError("Commit a snapshot matching the measured lab files before exporting provenance") + provenance = { + "baseline_source": environment["source_commits"]["baseline"], + "measured_candidate_source": environment["source_commits"]["candidate"], + "measured_lab_snapshot": lab_snapshot, + "measurement_file_hashes_verified_against_git": True, + "csv_sha256": hashlib.sha256((out / "measurements.csv").read_bytes()).hexdigest(), + } + if (root / "lint-baseline.json").exists() and (root / "lint-candidate.json").exists(): + base = json.loads((root / "lint-baseline.json").read_text()) + current = json.loads((root / "lint-candidate.json").read_text()) + introduced = Counter((r["code"], r["message"]) for r in current) - Counter((r["code"], r["message"]) for r in base) + provenance.update(baseline_cli_lint_findings=len(base), candidate_cli_lint_findings=len(current), introduced_cli_lint_findings=sum(introduced.values())) + (out / "provenance.json").write_text(json.dumps(provenance, indent=2) + "\n") + print(f"Attached {validation['passed']} passes, {skipped} skips and {len(checks)} diagnostic files") + + +if __name__ == "__main__": + main() diff --git a/labs/performance/local_database_lab.py b/labs/performance/local_database_lab.py new file mode 100644 index 00000000..609afcbc --- /dev/null +++ b/labs/performance/local_database_lab.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +"""Local SQLite/DuckDB connection, process-isolation and IPC experiments.""" +from __future__ import annotations + +import argparse +import json +import os +import pickle +import random +import resource +import sqlite3 +import tempfile +import time +from pathlib import Path + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repeat",type=int,default=9) + parser.add_argument("--output",required=True) + args=parser.parse_args() + output=Path(args.output).resolve() + output.parent.mkdir(parents=True,exist_ok=True) + records=[] + with tempfile.TemporaryDirectory(prefix="sqlit-local-db-lab-") as temp: + os.environ["SQLIT_CONFIG_DIR"]=temp + os.environ["SQLIT_WORKER_LOG"]=str(Path(temp)/"worker.log") + from sqlit.domains.connections.domain.config import ConnectionConfig, FileEndpoint + from sqlit.domains.connections.providers.catalog import get_provider + from sqlit.domains.process_worker.app.process_worker_client import ProcessWorkerClient + from sqlit.domains.query.app.cancellable import CancellableQuery + + def measure(provider,name,iteration,callback): + start, cpu=time.perf_counter(),time.process_time() + extra=callback() or {} + record={"provider":provider,"scenario":name,"iteration":iteration, + "wall_ms":(time.perf_counter()-start)*1000, + "parent_cpu_ms":(time.process_time()-cpu)*1000, + "maxrss_kib":resource.getrusage(resource.RUSAGE_SELF).ru_maxrss,**extra} + records.append(record) + print(json.dumps(record),flush=True) + + for name in ["sqlite","duckdb"]: + path=Path(temp)/f"{name}.db" + if name=="sqlite": + conn=sqlite3.connect(path) + conn.execute("CREATE TABLE lab_rows (id INTEGER PRIMARY KEY,payload TEXT)") + conn.executemany("INSERT INTO lab_rows VALUES (?,?)",[(i,"x"*256) for i in range(1,50001)]) + conn.commit() + else: + import duckdb + conn=duckdb.connect(str(path),config={"threads":"1"}) + conn.execute("CREATE TABLE lab_rows AS SELECT i AS id, repeat('x',256) AS payload FROM range(1,50001) t(i)") + conn.close() + config=ConnectionConfig(name="disposable-local-perf",db_type=name,endpoint=FileEndpoint(path=str(path))) + if name=="duckdb": + config.extra_options={"read_only":True,"config":{"threads":"1"}} + provider=get_provider(name) + adapter=provider.connection_factory + conn=adapter.connect(config) + client=ProcessWorkerClient() + try: + warmup=client.execute("SELECT 1",config,1000) + assert not warmup.error and warmup.result.rows==[(1,)] + def reuse(): + assert adapter.execute_query(conn,"SELECT 1",1)[1]==[(1,)] + def reconnect(): + connection=adapter.connect(config) + try: + assert adapter.execute_query(connection,"SELECT 1",1)[1]==[(1,)] + finally: + connection.close() + def cancellable(): + result=CancellableQuery(sql="SELECT 1",config=config,provider=provider).execute(1000) + assert result.rows==[(1,)] + def query(limit): + _,rows,truncated=adapter.execute_query(conn,"SELECT * FROM lab_rows ORDER BY id",limit) + expected=50000 if limit is None else limit + assert len(rows)==expected and rows[-1][0]==expected + assert truncated==(limit is not None) + return {"rows":len(rows)} + def worker(limit,sql="SELECT * FROM lab_rows ORDER BY id"): + outcome=client.execute(sql,config,limit) + assert not outcome.error,outcome.error + expected=1 if sql=="SELECT 1" else (50000 if limit is None else limit) + assert outcome.result.row_count==expected + return {"rows":expected,"worker_reported_ms":outcome.elapsed_ms} + def cold(): + fresh=ProcessWorkerClient() + try: + outcome=fresh.execute("SELECT 1",config,1000) + assert not outcome.error and outcome.result.rows==[(1,)] + return {"worker_reported_ms":outcome.elapsed_ms} + finally: + fresh.close() + cases={"reuse_select1":reuse,"connect_select1_close":reconnect, + "cancellable_select1":cancellable,"worker_warm_select1":lambda:worker(1000,"SELECT 1"), + "worker_cold_select1":cold,"direct_1000":lambda:query(1000), + "direct_50000":lambda:query(None),"worker_1000":lambda:worker(1000), + "worker_50000":lambda:worker(None)} + rng=random.Random(91) + for iteration in range(args.repeat): + names=list(cases) + rng.shuffle(names) + for scenario in names: + measure(name,scenario,iteration,cases[scenario]) + finally: + client.close() + conn.close() + output.write_text(json.dumps(records,indent=2)) + + # Serialization is isolated from driver and rendering measurements. + from multiprocessing.reduction import ForkingPickler + + import pyarrow as pa + for pattern in ["repeated","varied"]: + import hashlib + rows=[(i,(("x"*256).encode().decode() if pattern=="repeated" else "".join(hashlib.sha256(f"{i}-{j}".encode()).hexdigest() for j in range(4)))) for i in range(50000)] + assert rows[0][1] is not rows[1][1] # match independent driver-returned strings + table=pa.table({"id":[r[0] for r in rows],"payload":[r[1] for r in rows]}) + for iteration in range(args.repeat): + def pickle_roundtrip(): + encoded=ForkingPickler.dumps(rows) + decoded=pickle.loads(encoded) + assert decoded==rows + return {"bytes":len(encoded),"rows":50000,"pattern":pattern} + measure("ipc","pickle_roundtrip",iteration,pickle_roundtrip) + for compression in [None,"lz4","zstd"]: + def arrow_roundtrip(): + sink=pa.BufferOutputStream() + options=pa.ipc.IpcWriteOptions(compression=compression) + with pa.ipc.new_stream(sink,table.schema,options=options) as writer: + writer.write_table(table) + encoded=sink.getvalue() + decoded=pa.ipc.open_stream(encoded).read_all() + assert decoded.equals(table) + return {"bytes":len(encoded),"rows":50000,"pattern":pattern, + "boundary":"Arrow table to Arrow table; conversion from Python rows excluded"} + measure("ipc",f"arrow_{compression or 'none'}_roundtrip",iteration,arrow_roundtrip) + def arrow_python_roundtrip(): + input_table=pa.table({"id":[r[0] for r in rows],"payload":[r[1] for r in rows]}) + sink=pa.BufferOutputStream() + with pa.ipc.new_stream(sink,input_table.schema) as writer: + writer.write_table(input_table) + encoded=sink.getvalue() + decoded=pa.ipc.open_stream(encoded).read_all() + result=list(zip(decoded.column(0).to_pylist(),decoded.column(1).to_pylist())) + assert result==rows + return {"bytes":len(encoded),"rows":50000,"pattern":pattern, + "boundary":"Python rows to Python rows including both Arrow conversions"} + measure("ipc","arrow_python_roundtrip",iteration,arrow_python_roundtrip) + output.write_text(json.dumps(records,indent=2)) + + +if __name__=="__main__": + main() diff --git a/labs/performance/publish_pages.py b/labs/performance/publish_pages.py new file mode 100644 index 00000000..85485f4a --- /dev/null +++ b/labs/performance/publish_pages.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +"""Publish an existing public report directory to an isolated gh-pages branch. + +Defaults to a read-only plan. --publish requires the user's authorization to +publish the report. Existing Pages source configuration is never replaced. +""" +from __future__ import annotations + +import argparse +import hashlib +import json +import shutil +import subprocess +import tempfile +from pathlib import Path + + +def run(*args, cwd=None, input_text=None, check=True): + return subprocess.run(args, cwd=cwd, input=input_text, text=True, capture_output=True, check=check) + + +def pages(repo): + result = run("gh", "api", f"repos/{repo}/pages", check=False) + if result.returncode: + if "HTTP 404" in result.stderr: + return None + raise RuntimeError(result.stderr) + return json.loads(result.stdout) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo", required=True, help="GitHub owner/repository") + parser.add_argument("--source", required=True, type=Path, help="Directory containing report.html and its public assets") + parser.add_argument("--path", required=True, help="Destination folder inside gh-pages, e.g. performance/pr-331") + parser.add_argument("--publish", action="store_true") + args = parser.parse_args() + source = args.source.resolve() + destination = Path(args.path) + if destination.is_absolute() or ".." in destination.parts or not destination.parts: + parser.error("--path must be a safe relative folder") + if not (source / "report.html").is_file(): + parser.error("--source must contain report.html") + if any(p.is_symlink() for p in source.rglob("*")): + parser.error("Report source must not contain symlinks") + source_root = Path(run("git", "rev-parse", "--show-toplevel", cwd=source).stdout.strip()) + relative_source = source.relative_to(source_root) + tracked = {source_root / p for p in run("git", "ls-files", "-z", "--", str(relative_source), cwd=source_root).stdout.split("\0") if p} + if any(p.is_file() and p not in tracked for p in source.rglob("*")) or run("git", "diff", "HEAD", "--", str(relative_source), cwd=source_root).stdout: + parser.error("Commit the reviewed report and all its assets before publishing") + repository = json.loads(run("gh", "api", f"repos/{args.repo}").stdout) + if repository["private"]: + parser.error("This helper publishes only material from an already-public repository") + existing = pages(args.repo) + expected_source = {"branch": "gh-pages", "path": "/"} + if existing and (existing.get("source") != expected_source or existing.get("build_type") == "workflow"): + parser.error("An existing Pages configuration is in use; preserve it and use its deployment workflow") + source_sha = run("git", "rev-parse", "HEAD", cwd=source).stdout.strip() + if run("gh", "api", f"repos/{args.repo}/git/commits/{source_sha}", check=False).returncode: + parser.error("Push the report's source commit to this public repository before publishing") + remote = repository["clone_url"] + owner, name = args.repo.split("/", 1) + base_url = existing["html_url"] if existing else f"https://{owner.lower()}.github.io/" + ("" if name.lower() == f"{owner.lower()}.github.io" else f"{name}/") + plan = {"repo": args.repo, "branch": "gh-pages", "source_sha": source_sha, + "files": sum(p.is_file() for p in source.rglob("*")), + "destination": destination.as_posix(), "url": base_url.rstrip("/") + "/" + destination.as_posix() + "/"} + print(json.dumps(plan), flush=True) + if not args.publish: + return + with tempfile.TemporaryDirectory(prefix="sqlit-pages-") as temp: + checkout = Path(temp) / "site" + exists = bool(run("git", "ls-remote", "--heads", remote, "gh-pages").stdout.strip()) + if exists: + run("git", "clone", "--quiet", "--depth=1", "--single-branch", "--branch=gh-pages", remote, str(checkout)) + if not (checkout / ".nojekyll").exists(): + raise RuntimeError("Existing gh-pages branch is not marked static; refusing to change its build semantics") + else: + run("git", "init", "--quiet", "-b", "gh-pages", str(checkout)) + run("git", "remote", "add", "origin", remote, cwd=checkout) + target = checkout / destination + if not target.resolve().is_relative_to(checkout.resolve()): + raise RuntimeError("Destination escapes the publishing checkout") + shutil.copytree(source, target, dirs_exist_ok=True) + document = (target / "report.html").read_text() + document = document.replace('href="../../labs/performance/README.md"', + f'href="https://github.com/{args.repo}/blob/{source_sha}/labs/performance/README.md"') + (target / "report.html").write_text(document) + (target / "index.html").write_text(document) + (target / "publication.json").write_text(json.dumps({**plan, "published_html_sha256": hashlib.sha256(document.encode()).hexdigest()}, indent=2) + "\n") + (checkout / ".nojekyll").touch() + if not (checkout / "index.html").exists(): + (checkout / "index.html").write_text('sqlit reports' + f'

Open the sqlit performance study

\n') + run("git", "add", "--all", cwd=checkout) + changed = run("git", "diff", "--cached", "--quiet", cwd=checkout, check=False).returncode + if changed: + run("git", "commit", "-m", f"docs: publish report at {destination.as_posix()}", cwd=checkout) + run("git", "push", "origin", "HEAD:gh-pages", cwd=checkout) + current = pages(args.repo) + if current is None: + creation = run("gh", "api", f"repos/{args.repo}/pages", "--method", "POST", "--input", "-", + input_text=json.dumps({"build_type": "legacy", "source": expected_source}), check=False) + if creation.returncode: + # Creation may have taken effect despite an error, or another + # operation may have enabled Pages. Reconcile before retrying. + current = pages(args.repo) + if current is None: + raise RuntimeError(creation.stderr or creation.stdout) + else: + current = json.loads(creation.stdout) + if current.get("source") != expected_source or current.get("build_type") == "workflow": + raise RuntimeError("Pages source changed during publication; it was not overwritten") + print(json.dumps({"published_branch_commit": run("git", "rev-parse", "HEAD", cwd=checkout).stdout.strip(), + "pages_status": current.get("status"), "url": plan["url"]}), flush=True) + + +if __name__ == "__main__": + main() diff --git a/labs/performance/report.html.in b/labs/performance/report.html.in new file mode 100644 index 00000000..768d17bb --- /dev/null +++ b/labs/performance/report.html.in @@ -0,0 +1,275 @@ + + + + + +sqlit performance study + + + + +
+ +
+

sqlit performance study

+ +
+

Abstract

+

A measured investigation of sqlit identifies a severe autocomplete bottleneck and smaller sources of unnecessary startup and idle work. The strongest implemented result is a @@completion-ui-5000:reduction_percent@@% reduction in completion work plus dropdown refresh with 5,000 stored routines: the median falls from @@completion-ui-5000:before_median@@ ms to @@completion-ui-5000:after_median@@ ms. An index replaces a quadratic scan without changing the observed suggestions. Empty-queue scheduling changes reduce explorer-focus idle CPU by @@idle-idle_5s:reduction_percent@@%, and honoring a saved disabled-worker preference reduces launch-and-exit CPU by @@startup-cpu-disabled:reduction_percent@@%.

+

The study contains @@record-count@@ recorded observations from 152 sequential jobs, plus diagnostic pilots. It exercises the actual Textual application in pseudo-terminals, five real database engines, a controlled network-delay relay, and alternative rendering and serialization strategies. Database experiments show approximately 98% less response payload when a 50,000-row query is explicitly bounded to the first 1,001 rows. Bulk rendering and threaded preparation finish sooner but produce longer event-loop stalls. A sampled, row-backed prototype is promising for CPU and result availability, with substantial feature-contract work remaining.

+

Default first-refresh startup improvement is not established by the confidence interval. The long-cell change also lacks a reliable end-to-end timing gain in the repeated trials. Results apply to the stated fixtures, software versions and machine; they are not an overall application speedup, a physical FPS measurement or a production-cloud benchmark.

+
+ +
+

1. Study design

+

The investigation separates time to first useful display, time to complete a result, consumed CPU, event-loop responsiveness, terminal output, database payload and process memory. These quantities answer different questions. An optimization that removes waiting can increase CPU or redraw traffic, while a process that consumes little CPU can still block input. Each experimental conclusion names its measurement boundary.

+
+
Baseline source9db49c230c7c, main at the start of the study.
+
Measured changes0640c96464dc, including 1efa0e8.
+
MachineIntel Core Ultra 5 228V, eight logical CPUs, approximately 31 GiB RAM, Linux. Existing CPU-governor settings were retained.
+
SoftwareCPython 3.13.5; Textual 8.2.8; textual-fastdatatable 0.19.0; PyArrow 21.0.0. Dependencies came from the existing frozen lockfile.
+
UI environment120 × 40 pseudo-terminal; isolated configuration and temporary paths; synthetic application stores; real rendering and terminal writes.
+
Database enginesPostgreSQL 16, MySQL 8.0 and MariaDB 11 in disposable containers; SQLite and DuckDB in temporary files. Image content hashes are retained in the observations.
+
Measurement date10 September 2026. Source, package inventory, workload scripts, image hashes and run receipts accompany the results.
+
+

Experimental coverage

+
+ + + + + + +
QuestionExperimentReplication and boundary
Startup and import costDefault worker policy, saved worker disabled, and empty bytecode cache15 launches per source and normal condition; seven empty-bytecode launches. Separate import-traced pilot.
Typing-related freezes100–5,000 routines in the completion engine; 1,000 and 5,000 routines in the app dropdown pathNine trials per condition. CPU-function warmups are excluded; UI trials use fresh app processes.
Idle CPUExplorer focus and editor focus, with blinking preservedNine five-second windows per focus and source. The high-frequency heartbeat is disabled here.
Results and scrolling1,000–50,000 rows, six-column data, 40-column data, long text, decimals, 30 scroll actions and filteringFive trials per rendering strategy in a fixed workload sequence. Long-cell isolation adds five fresh-process trials per source.
Network and database costRow caps, explicit LIMIT, streaming cleanup, metadata query counts and connection reuseNine repeats across three server engines at zero and 20 ms added one-way latency. SQL runs against real servers.
Process and serialization costFresh/reused local connections, cancellable queries, cold/warm workers, 1,000/50,000 rows and IPC representationsNine repeats. Python-to-Python and already-columnar boundaries are reported separately.
+

Controls and statistics

+

Workloads ran sequentially. Baseline/candidate order was randomized within trial blocks with a fixed seed, and the rendering-strategy order was randomized. Database scenarios were shuffled within each repetition. Source commits were checked before jobs. Docker servers were limited to one CPU and 512 MiB each, exposed only on random loopback ports, then stopped and removed. Only synthetic database contents and public lab credentials were used.

+

The principal statistic is the median. Error bars show a nonparametric 95% bootstrap interval for that median, using 2,000 resamples. Reported improvement intervals use 5,000 resamples; matched trial blocks are resampled together where available. The completion-engine source runs use independent resampling. Reduction is 100 × (median before − median after) / median before. Negative reduction means increased cost. Means, standard deviations, quartiles, minimum, maximum and descriptive p95 values are available in the interactive appendix and JSON.

+

These are exploratory intervals, without correction for examining many alternatives. A p95 computed from five or nine runs is a description of this small sample, not a service-level guarantee. No host cache was dropped, CPU governor changed, or visible desktop manipulated. A new Python process is “cold” only at the process level; the filesystem may remain warm. The empty-bytecode condition redirects Python’s bytecode lookup and does not emulate a cold disk.

+
+ +
+

2. Diagnostics and calibration

+

The existing startup profiler and import tracer identified the startup phases. The existing debug-event bus and UI-stall watchdog were exercised in dedicated diagnostic runs. A known 120 ms blocking sleep produced a roughly 118 ms excess-delay observation and a watchdog warning. This control matters because the blocking sleep consumes little CPU: CPU utilization alone would miss the freeze.

+

The new lab adds a five-millisecond asyncio heartbeat, per-workload consumed CPU, terminal-byte accounting, display-call timestamps, Chrome trace exports, repeatable result assertions and statistics. cProfile localized rendering work in the compositor, table and Rich formatting paths. An independent py-spy recording of the baseline completion workload collected 471 samples with no sampling errors and retained a Speedscope file. Diagnostic timings are excluded from the formal comparative summaries.

+

A heartbeat value is lateness beyond its requested five-millisecond sleep. It is not a measured frame presentation time. Likewise, an application display call can write a partial update and need not correspond to one monitor frame. The report therefore uses event-loop lateness and terminal output as responsiveness evidence, without relabeling them as physical FPS. The formal completion runs disable the native watchdog to keep diagnostics overhead separate; watchdog evidence comes from the dedicated control runs.

+

The existing rendering tests permit several seconds and the standard headless app path does not start the idle scheduler. Those tests remain useful correctness checks, but cannot by themselves establish smooth interactive performance. The PTY experiments run the ordinary scheduler and renderer. A CLI preparser issue also surfaced: an absolute value following a diagnostic path flag could be mistaken for a project directory. The branch repairs that parsing and adds path-argument regressions.

+

Clock and CPU definitions follow Python’s time API. Threaded work must also respect the Textual worker/UI boundary; moving a function to a thread is not evidence that its complete pipeline has become non-blocking.

+
+ +
+

3. Autocomplete: a confirmed quadratic bottleneck

+

Implemented and tested

+

The baseline computes a display name for each routine by scanning every routine again to discover same-name entries in other schemas or databases. With N routines, this creates approximately candidate comparisons before returning at most 50 suggestions. The work also occurs for unrelated SQL and, in the original ordering, even before the blank-input early return.

+

The change builds one mapping from lowercased routine name to its database/schema identities, then uses that mapping for disambiguation. Original spelling, qualified names and output ordering are preserved. Blank or string-literal input returns before constructing the catalog index. The index is local to the completion request, avoiding a persistent cross-connection invalidation problem.

+@@figure-completion@@ +

For 5,000 routines, the standalone completion function falls from @@algorithm-5000:before_median@@ ms to @@algorithm-5000:after_median@@ ms. In the real application completion-and-dropdown path, the corresponding median is @@completion-ui-5000:before_median@@ ms to @@completion-ui-5000:after_median@@ ms, with a 95% reduction interval of approximately 97.0–98.2%. At 1,000 routines the UI path falls from @@completion-ui-1000:before_median@@ to @@completion-ui-1000:after_median@@ ms.

+

The large difference between the optimized function and the complete dropdown path is residual UI work, not a contradiction. The UI also formats names, computes context, mounts suggestion rows and refreshes. The existing 100 ms autocomplete debounce is outside the measured boundary. A 35 ms callback-and-refresh result does not establish a universal 16.7 ms frame budget; the largest low-overhead candidate heartbeat observation in this completion series still exceeds 50 ms.

+

Validation includes a deterministic operation-count regression that fails on repeated catalog rescanning, namespace and case checks, and the existing completion suite. The initial focused lane passed 347 tests. The formal engine samples retain hashes of their suggestion lists so that speed and observed output can be compared together. Further dropdown reuse or batched mounting is a separate opportunity, with no speedup claimed here.

+
+ +
+

4. Startup: remove unnecessary work before promising faster launch

+

Worker preference fix implemented

+

The CLI creates its process worker before constructing the Textual app, which preserves an existing platform safeguard around process spawning. Previously, the saved process_worker=false setting was applied only during mount, after that worker had already been created. The fix reads this preference before prewarming. Enabled configurations retain the early spawn path.

+@@figure-startup@@ +

With the saved worker disabled, launch-and-exit CPU falls from @@startup-cpu-disabled:before_median@@ to @@startup-cpu-disabled:after_median@@ ms, a @@startup-cpu-disabled:reduction_percent@@% reduction with a 95% interval of about 14.9–19.6%. First-refresh medians move from @@startup-ready-disabled:before_median@@ to @@startup-ready-disabled:after_median@@ ms, but the interval crosses zero. Default-policy startup likewise has no clearly established improvement. The supported claim is less unnecessary CPU when the worker is disabled.

+

Import diagnostics place a large share of startup before the first app construction, including Textual, Rich, the results widget and Arrow. Import timings are inclusive and must not be added as though every module were independent. The separate empty-bytecode condition reaches first refresh at approximately 1,194 ms, versus 393 ms for the compiled-cache disabled-worker condition. This supports checking bytecode generation in source-only or unusual packaging paths; it does not show that a normal installer is missing that optimization.

+

The next architectural startup experiment should defer the heavy results backend behind a lightweight empty-results state. It requires preserving focus, table selectors, commands and the first-query experience. The observed import budget is an opportunity ceiling, not a measured saving from an implementation. This study does not recommend deferring security checks or disabling the enabled worker’s platform safeguards merely to improve a launch number.

+
+ +
+

5. Idle CPU: schedule work when it exists

+

Implemented and tested

+

The baseline idle scheduler arranges another check every 150 ms even with an empty queue. The change leaves no check scheduled when there is no work, arms a timer when a job arrives, disarms it after cancellation or pause, and resumes pending work correctly. Elapsed-time decisions use a monotonic clock. Reentrant job requests and stop/start behavior are covered by lifecycle tests.

+@@figure-idle@@ +

With explorer focus, the five-second median CPU total falls from @@idle-idle_5s:before_median@@ to @@idle-idle_5s:after_median@@ ms. That is approximately 0.42% to 0.12% of one CPU core, or about 15 ms less consumed CPU per five seconds. The relative reduction is @@idle-idle_5s:reduction_percent@@%, but the absolute magnitude is important. Editor-focus CPU falls from @@idle-editor_idle_5s:before_median@@ to @@idle-editor_idle_5s:after_median@@ ms while retaining cursor blinking.

+

This is a reduction in periodic application work, not a measured battery-life gain. Other wakeups, the terminal emulator and the rest of the desktop remain outside the process measurement. A cursor-blink-disabled pilot showed an additional preference-dependent opportunity, but was not adopted or promoted to a replicated claim. Keeping the existing visual behavior while eliminating empty polling is the better-supported change.

+
+ +
+

6. Rendering: throughput, stutter, memory and terminal traffic

+

The stock result path renders a small preview, then appends rows through idle work. The main comparison loads 50,000 six-column rows, while other fixtures exercise small results, 40-column tables, long text, Decimal values, scrolling and filtering. Full result availability, initial result refresh and event-loop lateness are retained separately. Original row counts and selected values are asserted.

+@@figure-render-tradeoffs@@ +

Bulk rendering

+

Rejected as a general default

+

Building the whole table immediately reduces median full availability from @@render50k-bulk-wall_ms:before_median@@ to @@render50k-bulk-wall_ms:after_median@@ ms and reduces CPU by @@render50k-bulk-cpu_ms:reduction_percent@@%. However, the median of each trial’s maximum heartbeat lateness rises from @@render50k-bulk-max_loop_delay_ms:before_median@@ to @@render50k-bulk-max_loop_delay_ms:after_median@@ ms. Finishing the batch sooner comes with a substantially longer single interruption.

+

Preview plus threaded preparation

+

Did not meet the responsiveness objective

+

The hybrid keeps an immediate preview, prepares a complete Arrow backend in a thread and replaces the table once. Full availability improves to @@render50k-preview-thread-wall_ms:after_median@@ ms, but maximum lateness remains about @@render50k-preview-thread-max_loop_delay_ms:after_median@@ ms. The experiment demonstrates that moving preparation to a thread does not, by itself, remove the complete pipeline’s blocking behavior. Native conversion, GIL behavior and final mounting require separate attribution before selecting a more complex worker design. Python documents the relevant limitation of asyncio.to_thread.

+

More frequent timed batches

+

A measurable trade-off

+

Appending 500 rows per short timer reduces full availability to @@render50k-timer500-wall_ms:after_median@@ ms while keeping the median maximum lateness near @@render50k-timer500-max_loop_delay_ms:after_median@@ ms. It also generates substantially more terminal output: @@render50k-timer500-terminal_bytes:after_median@@ bytes versus @@render50k-timer500-terminal_bytes:before_median@@. Its CPU point estimate increases. A foreground render scheduler therefore needs both a latency budget and redraw coalescing; shortening timers alone is not a lightweight solution.

+

Rows retained in Python, display work on demand

+

Strong prototype; incomplete production contract

+

The read-only prototype retains the existing Python rows and supplies visible values on demand, with widths sampled from 128 leading rows and the last row. It avoids converting the complete dataset into a second representation solely for display. Full availability falls to @@render50k-row-backend-wall_ms:after_median@@ ms and CPU to @@render50k-row-backend-cpu_ms:after_median@@ ms: @@render50k-row-backend-wall_ms:reduction_percent@@% and @@render50k-row-backend-cpu_ms:reduction_percent@@% reductions respectively in this fixture.

+

The prototype changes the column-width policy and does not implement all mutation/export contracts. Filtering and restoration still exercise stock application paths. It runs inside the existing Arrow-dependent app, so it does not demonstrate removal of that dependency or its import cost. The next development step is an explicit backend contract covering sort, copy, export, duplicate labels, mixed types, UUIDs, binary values, dates, decimals and cancellation. The measured gain justifies that work; it does not justify silently replacing the current backend.

+@@figure-render-resources@@ +

Terminal bytes are the UTF-8 payload submitted to the terminal driver, excluding SSH framing, encryption, compression and retransmission. Scrolling still produces substantial output across backend strategies, so faster data preparation alone does not solve terminal transport cost. RSS is the process high-water value at a point in the same ordered workload sequence; it includes imports and earlier allocations and should not be read as the memory allocated by one operation.

+

Long-cell display bounds

+

Implemented; end-to-end speedup not established

+

The table’s formatter now honors the available width for oversized, single-line literal strings, using Rich’s cell-aware truncation. The backend value remains complete. Tests cover long ASCII, CJK, combining marks, emoji, markup-looking text and the existing styled-markup path. This gives the display representation a defined bound without truncating data used by the value viewer or other operations.

+@@figure-long-cells@@ +

The repeated fresh-process workload does not establish a reliable whole-operation speedup: CPU medians are @@long-cells-cpu:before_median@@ and @@long-cells-cpu:after_median@@ ms, with a reduction interval spanning roughly −20% to +30%. Full-availability timing is similarly uncertain. The earlier pilot looked stronger, illustrating why the paper uses the repeated study for conclusions. This change should receive normal visual review, with no broad performance credit assigned from these timings.

+

A separate headless visual fixture shows literal markup and Unicode values at their display bounds, with all 48 original values checked in the backend. Its rows are injected for display verification; its displayed query time is not a database measurement.

+
Detailed rendering effect estimates
@@render-table@@
+
+ +
+

7. Database transport: bound work where it happens

+

Each server contains a 50,000-row fixture with an integer key and 256-character payload. Tests use the real sqlit adapter, then compare a client-side 1,000-row cap, an explicit LIMIT 1001 plus that cap, and a provider-specific streaming cursor. A separate relay adds either zero or 20 ms delivery delay in each direction, while counting transmitted protocol payload. It pipelines data instead of sleeping once per SQL call or serially throttling every chunk.

+@@figure-network-limits@@ +

A 1,000-row cap still receives approximately 13.79 MB in PostgreSQL and 13.44 MB in MySQL and MariaDB for the unbounded SQL fixture. The explicitly limited query receives approximately 274 kB and 267 kB respectively, a roughly 98% reduction. All bounded variants verify the same first 1,000 rows and a true truncation indication. With 40 ms injected round-trip latency, the bounded query also removes substantial CPU and elapsed work.

+

This result concerns arbitrary unbounded SQL followed by a Python fetch cap. Generated table-preview queries already use dialect-specific SQL limits. A generic textual rewrite of every submitted statement would be unsafe for syntax and semantics: multi-statement batches, existing LIMIT clauses, locking reads, side-effecting functions and DML-returned rows need their own handling. The immediate recommendation is a clear bounded-preview execution contract, not an unconditional rewrite of user SQL.

+

Streaming is provider-specific

+

PostgreSQL’s regular cursor ordinarily transfers the complete result, while a named server-side cursor supports controlled fetching. The named-cursor experiment uses a transaction, closes the cursor, rolls back and restores the connection before a health query. These lifecycle requirements are part of the approach, as described in the Psycopg documentation.

+

PyMySQL’s SSCursor returns initial rows without buffering everything, but its close operation exhausts the unread result. The lab measures this cleanup and confirms that the connection can execute SELECT 1 afterward. The full payload is still transferred for MySQL/MariaDB. This matches the documented cursor behavior. Streaming timings in the figure include that extra health query, so their boundary includes more work than the ordinary limited-query column.

+

Bandwidth figures count relay payload, including protocol messages; they exclude TCP/IP headers and packet retransmissions. The byte intervals collapse for this deterministic fixture because repeated executions produce the same payload size. That does not imply identical savings for arbitrary schemas or real cloud services.

+
+ +
+

8. Metadata and connection round trips

+

The existing PostgreSQL and MySQL-family column-inspection paths query primary-key information and column information separately. Scanning 20 fixture tables therefore requires 40 metadata queries. The lab compares that path with one query per table and a single query returning all 80 columns. Ordering, type names and primary-key flags must match the existing adapter results.

+@@figure-network-metadata@@ +

At 40 ms injected round-trip latency, the 20-table scan takes about 1.66–1.72 seconds on the baseline paths. One query per table removes approximately half the latency; a single batch reduces the scan to about 44–52 ms, approximately 97% faster. Loopback improvements are smaller and more dependent on query planning. This is strong evidence for reducing round trips where multiple metadata requests are genuinely required.

+

The default application loads much metadata lazily, so the experiment is not evidence that every connection currently performs this 20-table scan. A provider-specific bulk metadata capability should be invoked by actual demand and preserve schema/database identity, permissions, ordering and cache invalidation. It should not eagerly fetch an entire organization’s catalog simply because one batch can do so efficiently.

+@@figure-connection-reuse@@ +

For a short query at the injected latency, retaining a connection reduces median operation time from approximately 170 to 41 ms in PostgreSQL, 186 to 42 ms in MySQL, and 227 to 41 ms in MariaDB. The current cancellable-query implementation intentionally creates a dedicated connection, allowing cancellation to close it. This makes connection establishment a real opportunity and a real lifecycle constraint.

+

A useful next experiment is an exclusive-lease connection pool that discards cancelled or uncertain connections and explicitly resets reusable session state. Reset work may add round trips and reduce the available gain. Transactions, temporary objects, session settings, credential changes and cross-database routing must be validated before integration. The numbers above measure retained-connection opportunity; they are not measurements of a completed safe pool.

+
Detailed network latency effect estimates

All before/after values below are milliseconds. The final suffix “20” denotes 20 ms added in each direction.

@@network-table@@
+
+ +
+

9. Local databases, process isolation and IPC

+

SQLite and DuckDB experiments compare reused connections, fresh connections, the application’s cancellable-query object and the actual process-worker client. They also compare 1,000-row and 50,000-row transfers. Fixtures live in temporary files. DuckDB uses read-only connections so that the forced cross-process experiment does not depend on unsupported concurrent writers.

+@@figure-local-workers@@ +

Process creation and communication can dominate a trivial local query. A warm worker avoids repeated interpreter initialization, but the current worker still creates a dedicated query connection. Parent CPU measurements exclude the worker’s CPU; the worker’s reported operation time is retained separately. The cold-worker condition includes startup, execution and shutdown. In normal UI use, DuckDB advertises that the process-worker route is unsupported, so its forced comparison is an architectural experiment rather than a measurement of that adapter’s default behavior.

+

These results favor reusing an already-needed worker and avoiding an unwanted worker, while retaining cancellation and crash isolation where required. They do not support globally removing isolation. For long queries, the startup cost may be small relative to execution; for a rapid sequence of local previews, it can be the dominant term.

+@@figure-ipc@@ +

The serialization experiment intentionally distinguishes two contracts. A Python-row round trip includes serialization and reconstruction of Python values. A prepared-Arrow round trip starts and ends with a columnar table. Arrow’s buffer-sharing and IPC properties can be valuable in a pipeline that stays columnar, but they do not eliminate the conversions required by an otherwise row-oriented pipeline. The full Python-to-Arrow-to-Python variant is measured separately. The Arrow IPC documentation describes the underlying format and zero-copy opportunities.

+

Compression is data-dependent. Both repeated text and varied deterministic hexadecimal text are exercised. Repeated strings are allocated independently to match driver-returned values, preventing pickle from receiving an artificial advantage through object-identity memoization. LZ4 and Zstd results are available with byte sizes and round-trip times. A blanket serializer or compressor replacement is not supported; a sustained columnar path needs its own end-to-end experiment.

+
+ +
+

10. Recommended actions

+

The highest-confidence changes are small and localized. The larger opportunities are supported by actual prototypes or real-server comparisons, but retain explicit implementation gates. Savings from unrelated rows in this table must not be added into an “overall percentage.”

+
+ + + + + + + + + + +
Priority and statusActionMeasured evidence and next gate
P0
Implemented
Index routine identities once per completion request.5,000-routine app completion: @@completion-ui-5000:before_median@@ → @@completion-ui-5000:after_median@@ ms. Preserve the operation-count and namespace regressions.
P1
Implemented
Stop empty idle-queue polling.Explorer-focus idle CPU: @@idle-idle_5s:before_median@@ → @@idle-idle_5s:after_median@@ ms per five seconds. Verify pause, resume, cancellation and new work after drain.
P1
Implemented
Honor the saved disabled-worker setting before prewarm.Launch-and-exit CPU decreases @@startup-cpu-disabled:reduction_percent@@%. Keep the enabled worker’s early-spawn safeguard; no default startup speedup is established.
P1
Bounded display; timing uncertain
Keep long literal display values within the available cell width.Data fidelity and Unicode tests pass. Repeated whole-operation CPU and wall-time intervals cross zero; assign no proven overall saving.
P2
Real-server prototype
Provide one-query and demand-driven bulk metadata APIs.20-table scans at 40 ms added RTT improve by about 50% and 97%. Validate non-default schemas, duplicate names, visibility and invalidation.
P2
Real-server evidence
Make bounded retrieval an explicit execution path.Approximately 98% less response payload for the fixture. Preserve arbitrary SQL semantics; do not equate a Python row cap with a server limit.
P2
Opportunity measured
Test exclusive connection reuse with cancellation and reset.Short-query opportunity of roughly 76–82% at injected latency. Measure the actual reset/discard pool rather than promising the retained-connection upper bound.
P2
Rendering prototype
Develop a row-backed or sustained-columnar result pipeline.Sampled row backend: 50,000-row availability @@render50k-row-backend-wall_ms:before_median@@ → @@render50k-row-backend-wall_ms:after_median@@ ms; CPU @@render50k-row-backend-cpu_ms:reduction_percent@@% lower. Complete the backend feature contract first.
P3
Follow-up design
Coalesce redraws and give foreground rendering a bounded work budget.The timer experiment finishes sooner but increases terminal bytes by roughly 62%. Include active typing, resize, cancellation and slow-terminal tests.
P3
Budget identified
Audit bytecode packaging and defer heavy empty-result imports.Empty-bytecode startup is materially slower. Deferred imports still need a real first-query/focus prototype; no unbuilt speedup is claimed.
+

Approaches to avoid adopting from these results

+

Do not replace incremental rendering with a synchronous bulk build solely because completion time improves. Do not assume a thread removes native or mounting stalls. Do not switch all MySQL reads to SSCursor expecting a bandwidth cap. Do not remove cancellation isolation to reproduce a microbenchmark. Do not choose an IPC format using a comparison that excludes its required conversions. A width-cache intervention and disabling cursor blink were explored in pilots, but did not supply the same quality of evidence as the implemented fixes.

+
+ +
+

11. Validation and limits

+

All 152 formal jobs completed. The study asserts fixture result counts, selected cell values, truncation, metadata equivalence, successful post-stream connection use and serialization equality. Each owned Docker server was stopped and removed; cleanup logs retain exit and OOM state. Dedicated diagnostics provide the startup/import logs, native watchdog output, structured events, cProfile output and an independent sampling profile.

+
@@validation@@
+

The primary before/after estimates are below. Values are milliseconds, including CPU milliseconds where named. An interval crossing zero means that this sample does not establish the direction of the change. The saved-worker condition and the default-worker condition are intentionally separate.

+@@primary-table@@ +

External validity

+

This is one Linux laptop and one locked software environment. CPU frequency, thermal state and background activity were not pinned; load averages and environment metadata are retained. No physical terminal-emulator GPU timing, monitor presentation trace, battery energy or network packet loss was measured. Therefore, “60 FPS,” battery-life percentages and universal startup claims would go beyond the evidence.

+

The network-delay relay models fixed one-way latency, not a complete mobile or WAN network. It adds no loss, jitter, constrained bandwidth or TLS handshake, and its local database servers use small synthetic schemas. Paid cloud cold starts, OAuth/token refresh, SSH tunnels, enterprise catalog permissions, Oracle, SQL Server, Databricks, Exasol, Snowflake and other providers are outside the measured server matrix. No existing private connection was used to fill those gaps.

+

The principal UI dataset order is fixed, so later RSS observations include earlier allocations. Synthetic values cannot represent every driver object or LOB lifecycle. Repeated UI completion invokes the real application method and dropdown with supplied SQL text; it does not include physical keystroke transport or the existing debounce delay. Continuous typing during large-result ingestion, aggressive resize and all production cancellation races remain follow-up workloads.

+

Only the measured source changes are implemented in the branch. Experimental variants remain laboratory code. The study does not establish an installed release, a merge to main or a deployment. The baseline and measured candidate commits remain the reproducible references even if main changes later.

+
+ +
+

12. Explore the measurements

+

This table is generated from the recorded samples. Select an experiment family and metric, filter by provider, variant or scenario, and download the current view. Confidence intervals describe the median. The full JSON also retains means, standard deviations and quartiles.

+
+ + + + +
+

+
ScenarioVariant / engineConditionnMedian95% median intervalp95MinimumMaximum
+
All raw observation files

Lossless gzip-compressed JSON chunks include individual heartbeat samples and frame-call timestamps where available. The manifest supplies SHA-256 hashes. These are normalized observations; local run logs and the selected diagnostic files have separate provenance.

+
+ +
+

13. Reproduction and diagnostic tools

+

The lab scripts are stored in labs/performance/. Create separate worktrees at the referenced baseline and candidate commits and install the frozen dependencies. The controller needs only the standard library; plotting uses a separate Matplotlib environment so that plotting dependencies cannot change the measured app’s import graph.

+
uv sync --frozen --group dev --extra postgres --extra mysql --extra duckdb
+
+python labs/performance/study.py \
+  --baseline /absolute/baseline \
+  --candidate /absolute/candidate \
+  --python /absolute/candidate/.venv/bin/python \
+  --output /absolute/evidence \
+  --docker --dry-run
+
+# Remove --dry-run to execute. --quick is a smoke run only.
+# Without Docker: --phases startup,cpu,completion,render,idle
+
+python labs/performance/summarize.py \
+  --input /absolute/evidence --output docs/performance
+
+# In a separate environment with Matplotlib:
+python labs/performance/build_report.py --data docs/performance/data.json
+

The network helper only accepts disposable local containers. Individual probes can enable --diagnostics --profile, and output both Chrome trace JSON and the native debug/watchdog logs. py-spy record --format speedscope supplies a complementary sampling profile. Download the selected diagnostic recordings and regression logs. Tests should use isolated sqlit configuration; the old personal-connection watchdog integration test is not a substitute for a disposable fixture.

+

Offline trace viewer

+

Open a generated ui.trace.json file to inspect workload spans and heartbeat lateness locally. No file is uploaded. This viewer is a companion diagnostic tool; it does not convert application display calls into physical FPS.

+
+Choose a generated trace file to display its measurements. +

The lab’s trace uses logical lanes: workload spans and heartbeat observations.

+
+ +
+

References and evidence

+
    +
  1. sqlit source. Baseline 9db49c230c7c and measured candidate 0640c96464dc. Key source areas: completion engine; CLI prewarm; idle scheduler; result formatting; cursor adapters; cancellable queries and process worker.
  2. +
  3. Study data. @@record-count@@ normalized observations, descriptive statistics and effect intervals, lossless raw chunks and hashes, regression validation, and source/data provenance. The measurement-file hashes match laboratory snapshot 03e68b73999e.
  4. +
  5. Python Software Foundation. Time access and conversions, Python 3.13 documentation. Clock definitions and process CPU semantics. Accessed 10 September 2026.
  6. +
  7. Python Software Foundation. Coroutines and tasks: asyncio.to_thread. Threading and GIL limitations. Accessed 10 September 2026.
  8. +
  9. Textualize. Textual workers. Background work and UI interaction contracts. Installed Textual version measured: 8.2.8.
  10. +
  11. Psycopg project. Server-side cursors and transaction lifecycle. Installed psycopg2-binary version: 2.9.11. Accessed 10 September 2026.
  12. +
  13. PyMySQL project. Cursor objects: SSCursor and close. Installed PyMySQL version: 1.1.2. Accessed 10 September 2026.
  14. +
  15. Apache Arrow. Streaming, serialization and IPC and concat_tables. The installed implementation measured here is PyArrow 21.0.0; documentation describes the representation and buffer-sharing contracts.
  16. +
+

This HTML embeds its figures and statistical explorer and requires no external JavaScript, font or image service. The SVG figures, CSV, statistics JSON and raw chunks remain separate downloadable artifacts. Measured outcomes, experimental interventions and proposed follow-up work are intentionally identified throughout.

+
+
+
+ + + + + diff --git a/labs/performance/requirements-report.txt b/labs/performance/requirements-report.txt new file mode 100644 index 00000000..97f04d7e --- /dev/null +++ b/labs/performance/requirements-report.txt @@ -0,0 +1,11 @@ +contourpy==1.3.3 +cycler==0.12.1 +fonttools==4.64.0 +kiwisolver==1.5.1 +matplotlib==3.11.1 +numpy==2.5.3 +packaging==26.3 +pillow==12.3.0 +pyparsing==3.3.2 +python-dateutil==2.9.0.post0 +six==1.17.0 diff --git a/labs/performance/row_backend.py b/labs/performance/row_backend.py new file mode 100644 index 00000000..15ae3b67 --- /dev/null +++ b/labs/performance/row_backend.py @@ -0,0 +1,54 @@ +"""Read-only UI experiment: retain Python rows, sample widths, normalize on read. + +This is NOT a drop-in production backend. DataTable export/mutation support and +exact column widths are deliberately outside this rendering experiment. +""" +from __future__ import annotations + +from textual_fastdatatable.backend import _measure_width + +from sqlit.shared.ui.widgets_tables import normalize_arrow_value + + +class RowBackend: + def __init__(self, rows, columns): + self.data = rows + self.columns = list(columns) + self.render_markup = False + self._widths = None + + @property + def row_count(self): + return len(self.data) + + @property + def source_row_count(self): + return self.row_count + + @property + def column_count(self): + return len(self.columns) + + @property + def column_content_widths(self): + if self._widths is None: + sample = [*self.data[:128], *self.data[-1:]] + self._widths = [0]*self.column_count + for row in sample: + for col,value in enumerate(row): + value = normalize_arrow_value(value) + if isinstance(value,str) and value.isascii() and '\n' not in value and '\r' not in value: + size = min(len(value),100) + else: + size = min(_measure_width(value,render_markup=False),100) + self._widths[col] = max(self._widths[col],size) + return self._widths + + def get_cell_at(self,row_index,column_index): + return normalize_arrow_value(self.data[row_index][column_index]) + + def get_row_at(self,index): + return [normalize_arrow_value(value) for value in self.data[index]] + + def get_column_at(self,index): + return [normalize_arrow_value(row[index]) for row in self.data] diff --git a/labs/performance/run.py b/labs/performance/run.py new file mode 100644 index 00000000..beaa114f --- /dev/null +++ b/labs/performance/run.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python3 +"""Reproducible sqlit PTY startup and UI experiments (synthetic data only). + +The controller uses only the standard library. --python selects the pinned +sqlit environment; --repo selects the code under test, independently of this +lab's location. No user configuration or database credentials are loaded. +""" +from __future__ import annotations + +import argparse +import fcntl +import hashlib +import json +import os +import platform +import pty +import re +import resource +import select +import struct +import subprocess +import sys +import tempfile +import termios +import time +from pathlib import Path + + +def isolated_env(repo: Path, state: Path) -> dict[str, str]: + env = os.environ.copy() + for key in list(env): + if key.startswith(("SQLIT_", "PYTHONPROFILE", "TEXTUAL_")): + env.pop(key) + env.update( + PYTHONPATH=str(repo), SQLIT_CONFIG_DIR=str(state / "config"), + TMPDIR=str(state / "tmp"), TERM="xterm-256color", COLORTERM="truecolor", + PYTHONHASHSEED="0", PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring", + OMP_NUM_THREADS="1", OPENBLAS_NUM_THREADS="1", + ) + (state / "config").mkdir() + (state / "tmp").mkdir() + # Public synthetic settings: disable external discovery and eager workers. + (state / "config" / "settings.json").write_text(json.dumps({ + "theme": "tokyo-night", "process_worker": False, + "process_worker_warm_on_idle": False, + "docker_auto_detect": False, "cloud_auto_detect": False, + })) + return env + + +def pty_run(command: list[str], *, cwd: Path, env: dict[str, str], timeout: float, + startup_log: Path | None = None) -> dict: + master, slave = pty.openpty() + fcntl.ioctl(slave, termios.TIOCSWINSZ, struct.pack("HHHH", 40, 120, 0, 0)) + before = resource.getrusage(resource.RUSAGE_CHILDREN) + start = time.perf_counter() + proc = subprocess.Popen(command, cwd=cwd, env=env, stdin=slave, stdout=slave, + stderr=slave, start_new_session=True) + os.close(slave) + received = bytearray() + ready_ms = None + timed_out = False + try: + while True: + if time.perf_counter() - start > timeout: + timed_out = True + import signal + os.killpg(proc.pid, signal.SIGKILL) + break + readable, _, _ = select.select([master], [], [], .005) + if readable: + try: + chunk = os.read(master, 65536) + except OSError: + break + if not chunk: + break + received.extend(chunk) + if ready_ms is None and startup_log and startup_log.exists(): + if "start_to_first_refresh_ms=" in startup_log.read_text(): + ready_ms = (time.perf_counter() - start) * 1000 + if proc.poll() is not None and not readable: + break + finally: + proc.wait() + os.close(master) + after = resource.getrusage(resource.RUSAGE_CHILDREN) + elapsed = (time.perf_counter() - start) * 1000 + if timed_out or proc.returncode: + raise RuntimeError(f"child failed: rc={proc.returncode}, timeout={timed_out}\n" + + received[-5000:].decode(errors="replace")) + return { + "process_wall_ms": elapsed, "parent_ready_ms": ready_ms, + "process_cpu_ms": ((after.ru_utime-before.ru_utime)+(after.ru_stime-before.ru_stime))*1000, + "pty_bytes": len(received), "output_tail": received[-3000:].decode(errors="replace"), + } + + +def controller(args: argparse.Namespace) -> None: + repo, output = Path(args.repo).resolve(), Path(args.output).resolve() + output.mkdir(parents=True, exist_ok=True) + sha = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=repo, text=True).strip() + meta = {"sha": sha, "repo": str(repo), "python": args.python, + "label": args.label, "variant": args.variant, + "mode": args.mode, "platform": platform.platform(), "created_utc": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), + "loadavg": os.getloadavg(), "viewport": [120, 40], + "settings": "isolated; eager worker off; null keyring; synthetic stores for UI"} + diff = subprocess.check_output(["git", "diff", "HEAD", "--", "sqlit"], cwd=repo) + meta.update(source_diff_sha256=hashlib.sha256(diff).hexdigest(), source_dirty=bool(diff), + worker_default=args.worker_default, no_bytecode_cache=args.no_bytecode_cache, + workload=args.workload, diagnostics=args.diagnostics, profile=args.profile) + (output / "metadata.json").write_text(json.dumps(meta, indent=2)) + for index in range(args.repeat): + run_dir = output / f"run-{index:03d}" + run_dir.mkdir(exist_ok=True) + with tempfile.TemporaryDirectory(prefix="sqlit-perf-") as temp: + state = Path(temp) + env = isolated_env(repo, state) + if args.worker_default: + settings_path=state / "config" / "settings.json" + settings=json.loads(settings_path.read_text()) + settings.pop("process_worker") + settings.pop("process_worker_warm_on_idle") + settings_path.write_text(json.dumps(settings)) + if args.no_bytecode_cache: + env["PYTHONPYCACHEPREFIX"]=str(state / "fresh-pycache") + env["PYTHONDONTWRITEBYTECODE"]= "1" + if args.mode == "startup": + log = run_dir / "startup.txt" + command = [args.python, "-c", "from sqlit.cli import main; raise SystemExit(main())", + "--profile-startup-exit", f"--profile-startup-file={log}"] + if args.imports: + command += [f"--profile-startup-imports-file={run_dir / 'imports.txt'}"] + env["PYTHONPROFILEIMPORTTIME"] = "1" + result = pty_run(command, cwd=state, env=env, timeout=30, startup_log=log) + content = log.read_text() + match = re.search(r"start_to_first_refresh_ms=([\d.]+)", content) + assert match, "Native first-refresh marker missing" + result["cli_first_refresh_ms"] = float(match.group(1)) + else: + result_path = run_dir / "ui.json" + command = [args.python, str(Path(__file__).resolve()), "--child", "--mode", args.mode, + "--variant", args.variant, "--output", str(result_path)] + if args.profile: + command += ["--profile"] + if args.headless: + command += ["--headless"] + if args.diagnostics: + command += ["--diagnostics"] + if args.workload: + command += ["--workload",args.workload] + result = pty_run(command, cwd=state, env=env, timeout=180) + result["workloads"] = json.loads(result_path.read_text()) + result.update(index=index, label=args.label, variant=args.variant, sha=sha) + (run_dir / "result.json").write_text(json.dumps(result, indent=2)) + print(json.dumps({k:v for k,v in result.items() if k not in {"output_tail", "workloads"}}), flush=True) + + +def child(args: argparse.Namespace) -> None: + import asyncio + import cProfile + from decimal import Decimal + + from variants import install_variant + + from sqlit.domains.shell.app.main import SSMSTUI + from sqlit.shared.app.runtime import RuntimeConfig + from tests.ui.mocks import MockConnectionStore, MockSettingsStore, build_test_services + install_variant(args.variant) + + output = Path(args.output) + runtime = RuntimeConfig(process_worker=False, process_worker_warm_on_idle=False, + ui_stall_watchdog_ms=50 if args.diagnostics else 0) + services = build_test_services(runtime=runtime, connection_store=MockConnectionStore(), + settings_store=MockSettingsStore({"theme": "tokyo-night"}), + docker_detector=lambda: (None, [])) + app = SSMSTUI(services=services) + trace: list[dict] = [] + records: list[dict] = [] + gaps: list[tuple[float, float]] = [] + frames: list[float] = [] + terminal_bytes = 0 + start = time.perf_counter() + app._debug_event_log_path = output.with_suffix(".debug.jsonl") + app._ui_stall_watchdog_log_path = output.with_suffix(".watchdog.txt") + profile = cProfile.Profile() if args.profile else None + original_display = app._display + + def measured_display(*a, **kw): + frames.append(time.perf_counter()) + return original_display(*a, **kw) + + app._display = measured_display + + async def heartbeat(): + while True: + before = time.perf_counter() + await asyncio.sleep(.005) + now = time.perf_counter() + gaps.append((now, max(0, (now-before-.005)*1000))) + + async def refresh(): + fut = asyncio.get_running_loop().create_future() + app.call_after_refresh(lambda: fut.set_result(None) if not fut.done() else None) + app.refresh() + await asyncio.wait_for(fut, 15) + + async def measure(name, operation): + await asyncio.sleep(.08) + cpu, wall = time.process_time(), time.perf_counter() + frame_start = len(frames) + byte_start = terminal_bytes + watchdog_start = len(app._ui_stall_watchdog_events) + app.emit_debug_event("lab.begin", category="performance", workload=name) + if profile: + profile.enable() + extra = await operation() + if profile: + profile.disable() + await refresh() + end = time.perf_counter() + cpu_ms = (time.process_time()-cpu)*1000 + await asyncio.sleep(.02) # include the heartbeat delayed by the operation + selected = [g for t,g in gaps if wall <= t <= end+.02] + record = {"name": name, "wall_ms": (end-wall)*1000, "cpu_ms": cpu_ms, + "loop_delays_ms": selected, "frames": len(frames)-frame_start, + "terminal_bytes": terminal_bytes-byte_start, + "frame_times_ms": [(t-wall)*1000 for t in frames[frame_start:] if t <= end], + "watchdog_events": len(app._ui_stall_watchdog_events)-watchdog_start, + "maxrss_kib": resource.getrusage(resource.RUSAGE_SELF).ru_maxrss, + **(extra or {})} + records.append(record) + trace.append({"name":name, "ph":"X", "pid":1, "tid":1, + "ts":(wall-start)*1e6, "dur":(end-wall)*1e6, + "args":{k:v for k,v in record.items() if k not in {"loop_delays_ms", "frame_times_ms"}}}) + app.emit_debug_event("lab.end", category="performance", workload=name, + wall_ms=record["wall_ms"], cpu_ms=cpu_ms) + + async def pilot_work(pilot): + nonlocal terminal_bytes + original_write = app._driver.write + def measured_write(data): + nonlocal terminal_bytes + terminal_bytes += len(data.encode("utf-8")) if isinstance(data, str) else len(data) + return original_write(data) + app._driver.write = measured_write + # Idle CPU has no high-frequency sampler. UI responsiveness runs do. + beat = asyncio.create_task(heartbeat()) if args.mode != "idle" else None + try: + app._set_debug_events_enabled(args.diagnostics) + await asyncio.sleep(.8) + if args.mode == "idle": + async def idle(): + await asyncio.sleep(5) + await measure("idle_5s", idle) + app.query_input.focus() + await asyncio.sleep(.3) + await measure("editor_idle_5s", idle) + elif args.mode == "completion": + from sqlit.domains.connections.providers.adapters.base import RoutineInfo + for count in [1000,5000]: + app._schema_cache = {"tables":[],"columns":{},"procedures":[ + RoutineInfo(f"proc_{i:05d}",schema="dbo",database="lab") for i in range(count)]} + async def complete(): + sql="EXEC proc_" + values=app._get_autocomplete_suggestions(sql,len(sql)) + assert len(values)==min(count,50) and "proc_00000" in values + app._show_autocomplete(values,"proc_") + return {"routines":count,"suggestions":len(values)} + await measure(f"autocomplete_{count}_routines",complete) + app._hide_autocomplete() + else: + for count, width, kind in [(1000,6,"normal"), (10000,6,"normal"), + (50000,6,"normal"), (5000,40,"wide"), + (1000,3,"long"), (10000,6,"decimal")]: + if args.workload and args.workload != f"render_{count}_{width}_{kind}": + continue + columns = [f"column_{i}" for i in range(width)] + if kind == "decimal": + rows = [(i, Decimal(f"{i}.12345"), *[f"value-{i}-{j}" for j in range(width-2)]) for i in range(count)] + else: + length = 10000 if kind == "long" else 24 + rows = [(i, *[f"value-{i}-{j}:"+"x"*length for j in range(width-1)]) for i in range(count)] + + async def render(): + render_start = time.perf_counter() + if args.variant in {"bulk", "row-backend"}: + app._last_result_columns = columns + app._last_result_rows = rows + app._last_result_row_count = count + if args.variant == "row-backend": + from row_backend import RowBackend + app._cancel_results_render() + table = app._build_results_table(columns,[],escape=True,backend=RowBackend(rows,columns)) + app._replace_results_table_with_table(table) + else: + app._replace_results_table(columns, rows) + else: + await app._display_query_results(columns, rows, count, False, 0) + await refresh() + first_ms = (time.perf_counter()-render_start)*1000 + deadline = time.perf_counter()+60 + while app.results_table.row_count != min(count, 50000): + if time.perf_counter() > deadline: + raise TimeoutError(f"Rows {app.results_table.row_count}/{count}") + await asyncio.sleep(.01) + assert len(app._last_result_rows) == count + assert app.results_table.get_cell_at(__import__("textual.coordinate", fromlist=["Coordinate"]).Coordinate(0,0)) == 0 + from textual.coordinate import Coordinate + for row_index in [0,count//2,count-1]: + assert app.results_table.get_cell_at(Coordinate(row_index,1)) == rows[row_index][1] + return {"first_result_refresh_ms":first_ms, "rows":count, "columns":width} + await measure(f"render_{count}_{width}_{kind}", render) + if kind == "normal" and count == 10000: + app.results_table.focus() + async def scroll(): + for i in range(30): + app.results_table.move_cursor(row=i*10, column=0) + await refresh() + return {"actions":30} + await measure("scroll_30", scroll) + async def filter_open(): + app.action_results_filter() + await measure("filter_open_10000", filter_open) + async def filter_apply(): + app._results_filter_text = "value-999" + app._update_results_filter() + assert len(app._results_filter_matching_rows) == 11 + await measure("filter_search_10000", filter_apply) + async def filter_close(): + app.action_results_filter_close() + await measure("filter_close_10000", filter_close) + async def stall_control(): + time.sleep(.12) + await asyncio.sleep(.1) + if args.diagnostics: + await measure("injected_120ms_stall_control", stall_control) + finally: + if beat: + beat.cancel() + output.write_text(json.dumps(records, indent=2)) + for t, delay in gaps: + trace.append({"name":"event_loop_delay_ms", "ph":"C", "pid":1,"tid":2, + "ts":(t-start)*1e6,"args":{"delay_ms":delay}}) + output.with_suffix(".trace.json").write_text(json.dumps({"traceEvents":trace})) + if profile: + profile.dump_stats(str(output.with_suffix(".pstats"))) + app.exit() + + if args.headless: + async def run_headless(): + async with app.run_test(size=(120,40)) as pilot: + await pilot_work(pilot) + asyncio.run(run_headless()) + else: + app.run(auto_pilot=pilot_work, size=(120,40)) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo", default=".") + parser.add_argument("--python", default=sys.executable) + parser.add_argument("--output", required=True) + parser.add_argument("--label", default="baseline") + parser.add_argument("--mode", choices=["startup", "ui", "idle", "completion"], default="startup") + parser.add_argument("--variant", choices=["stock", "bulk", "chunk1000", "chunk2000", "widthcache", "preview-thread", "idle-demand", "no-blink", "timer200", "timer500", "row-backend", "clipcells"], default="stock") + parser.add_argument("--repeat", type=int, default=1) + parser.add_argument("--imports", action="store_true") + parser.add_argument("--profile", action="store_true") + parser.add_argument("--diagnostics", action="store_true") + parser.add_argument("--headless", action="store_true") + parser.add_argument("--workload") + parser.add_argument("--worker-default", action="store_true") + parser.add_argument("--no-bytecode-cache", action="store_true") + parser.add_argument("--child", action="store_true", help=argparse.SUPPRESS) + args = parser.parse_args() + child(args) if args.child else controller(args) + + +if __name__ == "__main__": + main() diff --git a/labs/performance/study.py b/labs/performance/study.py new file mode 100644 index 00000000..198cb861 --- /dev/null +++ b/labs/performance/study.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python3 +"""Run the measured study sequentially, with paired order and resumable receipts.""" +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import platform +import random +import subprocess +import sys +import tempfile +import time +from pathlib import Path + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument("--baseline",required=True) + parser.add_argument("--candidate",required=True) + parser.add_argument("--python",required=True) + parser.add_argument("--output",required=True) + parser.add_argument("--phases",default="startup,cpu,completion,render,idle,network,local") + parser.add_argument("--docker",action="store_true") + parser.add_argument("--dry-run",action="store_true") + parser.add_argument("--quick",action="store_true",help="One trial per condition; smoke validation only") + args=parser.parse_args() + root=Path(__file__).resolve().parent + output=Path(args.output).resolve() + output.mkdir(parents=True,exist_ok=True) + phases=set(args.phases.split(',')) + allowed={"startup","cpu","completion","render","idle","network","local"} + if phases-allowed: + parser.error(f"Unknown phases: {phases-allowed}") + if "network" in phases and not (args.docker or args.dry_run): + parser.error("Network phase needs --docker for disposable local containers") + repos={"baseline":Path(args.baseline).resolve(),"candidate":Path(args.candidate).resolve()} + def git(repo,*argv): + return subprocess.check_output(["git",*argv],cwd=repo,text=True).strip() + shas={key:git(repo,"rev-parse","HEAD") for key,repo in repos.items()} + if any(git(repo,"diff","HEAD","--","sqlit") for repo in repos.values()): + parser.error("Commit production source before the study; code under test must stay fixed") + measurement_files = ["run.py", "variants.py", "row_backend.py", "cpu_lab.py", "database_lab.py", "local_database_lab.py", "study.py"] + inventory={name:hashlib.sha256((root/name).read_bytes()).hexdigest() for name in measurement_files} + host={"date_utc":time.strftime("%Y-%m-%dT%H:%M:%SZ",time.gmtime()),"platform":platform.platform(), + "cpu_count":os.cpu_count(),"loadavg":os.getloadavg(),"source_commits":shas, + "lab_files_sha256":inventory,"argv":sys.argv,"measurement_python":args.python, + "cpuinfo":Path('/proc/cpuinfo').read_text().split('\n\n')[0], + "meminfo":Path('/proc/meminfo').read_text(), + "governors":{str(p):p.read_text().strip() for p in Path('/sys/devices/system/cpu/cpufreq').glob('policy*/scaling_governor')}} + host["packages"]=json.loads(subprocess.check_output([args.python,"-c", + "import importlib.metadata as m,json,sys; print(json.dumps({'python':sys.version,'packages':{d.metadata['Name']:d.version for d in m.distributions()}}))"],text=True)) + (output/f"environment-{'-'.join(sorted(phases))}.json").write_text(json.dumps(host,indent=2)) + jobs=[] + rng=random.Random(90210) + def ui_job(label,source,mode,variant="stock",extra=()): + command=[sys.executable,str(root/'run.py'),'--repo',str(repos[source]),'--python',args.python, + '--mode',mode,'--variant',variant,'--label',source,'--output',str(output/label),*extra] + jobs.append((label,source,command)) + for phase in ["startup","completion","render","idle"]: + if phase not in phases: + continue + repeats=1 if args.quick else (15 if phase=="startup" else (9 if phase in {"completion","idle"} else 5)) + for index in range(repeats): + sources=list(repos) + rng.shuffle(sources) + if phase=="startup": + for condition,extra in [("disabled",[]),("default",["--worker-default"])]: + for source in sources: + ui_job(f"startup-{condition}/{index:02d}-{source}",source,"startup",extra=extra) + if index < (1 if args.quick else 7): + ui_job(f"startup-no-pyc/{index:02d}-candidate","candidate","startup",extra=["--no-bytecode-cache"]) + elif phase=="render": + variants=[("baseline","stock"),("candidate","stock"),("baseline","bulk"), + ("baseline","preview-thread"),("baseline","timer500"),("baseline","row-backend")] + rng.shuffle(variants) + for source,variant in variants: + ui_job(f"render/{index:02d}-{source}-{variant}",source,"ui",variant) + for source in sources: + ui_job(f"long-cells/{index:02d}-{source}",source,"ui",extra=["--workload","render_1000_3_long"]) + else: + for source in sources: + ui_job(f"{phase}/{index:02d}-{source}",source,phase) + if "cpu" in phases: + for source in repos: + jobs.append((f"cpu-{source}",source,[args.python,str(root/'cpu_lab.py'),'--repeat','1' if args.quick else '9', + '--output',str(output/f'cpu-{source}.json')])) + if "network" in phases: + for provider in ["postgresql","mysql","mariadb"]: + for delay in [0,20]: + label=f"network-{provider}-{delay}" + jobs.append((label,"baseline",[args.python,str(root/'database_lab.py'),'--docker','--provider',provider, + '--repeat','1' if args.quick else '9','--one-way-ms',str(delay), + '--output',str(output/f'{label}.json')])) + if "local" in phases: + jobs.append(("local-databases","baseline",[args.python,str(root/'local_database_lab.py'),'--repeat','1' if args.quick else '9', + '--output',str(output/'local-databases.json')])) + plan=[{"label":label,"source":source,"command":cmd} for label,source,cmd in jobs] + (output/f"plan-{'-'.join(sorted(phases))}.json").write_text(json.dumps(plan,indent=2)) + print(f"{len(jobs)} sequential jobs; source SHAs {shas}",flush=True) + if args.dry_run: + for item in plan: + print(json.dumps(item)) + return + receipts=output/'receipts' + receipts.mkdir(exist_ok=True) + for index,(label,source,command) in enumerate(jobs): + key=label.replace('/','_') + signature=hashlib.sha256(json.dumps([command,shas,inventory],sort_keys=True).encode()).hexdigest() + receipt=receipts/f'{key}.json' + if receipt.exists() and json.loads(receipt.read_text()).get('signature')==signature: + print(f"{index+1}/{len(jobs)} already verified: {label}",flush=True) + continue + if git(repos[source],"rev-parse","HEAD")!=shas[source] or git(repos[source],"diff","HEAD","--","sqlit"): + raise RuntimeError("Code changed during measurement") + start=time.perf_counter() + print(f"{index+1}/{len(jobs)} running: {label}",flush=True) + with tempfile.TemporaryDirectory(prefix='sqlit-study-control-') as temp: + env=os.environ.copy() + env.update(PYTHONPATH=str(repos[source]),SQLIT_CONFIG_DIR=temp, + SQLIT_WORKER_LOG=str(Path(temp)/'worker.log'),PYTHONHASHSEED='0', + OMP_NUM_THREADS='1',OPENBLAS_NUM_THREADS='1') + with (receipts/f'{key}.log').open('w') as log: + proc=subprocess.run(command,env=env,cwd=root.parent.parent,stdout=log,stderr=subprocess.STDOUT,timeout=600) + if proc.returncode: + raise RuntimeError(f"Study failed at {label}; inspect {receipts/key}.log") + receipt.write_text(json.dumps({"signature":signature,"source_sha":shas[source],"label":label, + "wall_s":time.perf_counter()-start,"loadavg_after":os.getloadavg(), + "finished_utc":time.strftime('%Y-%m-%dT%H:%M:%SZ',time.gmtime())},indent=2)) + print("Requested study phases complete.",flush=True) + + +if __name__=='__main__': + main() diff --git a/labs/performance/summarize.py b/labs/performance/summarize.py new file mode 100644 index 00000000..33af0c7f --- /dev/null +++ b/labs/performance/summarize.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python3 +"""Normalize observations and compute descriptive, reproducible bootstrap CIs.""" + +from __future__ import annotations + +import argparse +import csv +import gzip +import hashlib +import json +import math +import random +import statistics +from pathlib import Path + + +def quantile(values, fraction): + ordered = sorted(values) + if len(ordered) == 1: + return ordered[0] + index = (len(ordered) - 1) * fraction + left = math.floor(index) + right = math.ceil(index) + return ordered[left] + (ordered[right] - ordered[left]) * (index - left) + + +def describe(values): + values = list(values) + rng = random.Random(43319) + draws = [statistics.median(rng.choices(values, k=len(values))) for _ in range(2000)] + return { + "n": len(values), + "median": statistics.median(values), + "mean": statistics.mean(values), + "min": min(values), + "max": max(values), + "p95": quantile(values, 0.95), + "q25": quantile(values, 0.25), + "q75": quantile(values, 0.75), + "sd": statistics.stdev(values) if len(values) > 1 else 0, + "median_ci95": [quantile(draws, 0.025), quantile(draws, 0.975)], + } + + +def load_records(root): + records = [] + for path in sorted(root.glob("startup-*/*/run-000/result.json")): + raw = json.loads(path.read_text()) + records.append( + { + "suite": "startup", + "scenario": path.parents[2].name.removeprefix("startup-"), + "variant": raw["label"], + "trial": int(path.parents[1].name.split("-")[0]), + "source_sha": raw["sha"], + **{k: raw[k] for k in ["parent_ready_ms", "cli_first_refresh_ms", "process_cpu_ms", "pty_bytes"]}, + } + ) + for suite in ["completion", "render", "idle", "long-cells"]: + for path in sorted((root / suite).glob("*/run-000/result.json")): + raw = json.loads(path.read_text()) + variant = raw["label"] if raw["variant"] == "stock" else raw["variant"] + for item in raw["workloads"]: + delays = item["loop_delays_ms"] + records.append( + { + "suite": suite, + "scenario": item["name"], + "variant": variant, + "trial": int(path.parents[1].name.split("-")[0]), + "source_sha": raw["sha"], + **{k: v for k, v in item.items() if k != "name"}, + "max_loop_delay_ms": max(delays, default=0), + "p95_loop_delay_ms": quantile(delays, 0.95) if delays else 0, + "loop_delays_over_16_7_ms": sum(x > 16.7 for x in delays), + "loop_delays_over_50_ms": sum(x > 50 for x in delays), + "one_core_cpu_percent": 100 * item["cpu_ms"] / item["wall_ms"], + } + ) + for variant in ["baseline", "candidate"]: + path = root / f"cpu-{variant}.json" + if path.exists(): + for item in json.loads(path.read_text()): + records.append({"suite": "cpu", "variant": variant, "trial": item["iteration"], **item}) + for path in sorted(root.glob("network-*.json")): + raw = json.loads(path.read_text()) + for item in raw["records"]: + records.append({"suite": "network", "variant": "baseline", "trial": item["iteration"], "image": raw["metadata"]["image"], "image_id": raw["metadata"]["image_id"], **item}) + path = root / "local-databases.json" + if path.exists(): + for item in json.loads(path.read_text()): + records.append({"suite": "ipc" if item["provider"] == "ipc" else "local", "variant": "baseline", "trial": item["iteration"], **item}) + return records + + +DIMENSIONS = ["suite", "scenario", "variant", "provider", "one_way_delay_ms", "objects", "pattern"] +METRICS = [ + "wall_ms", + "cpu_ms", + "parent_cpu_ms", + "client_cpu_ms", + "parent_ready_ms", + "cli_first_refresh_ms", + "process_cpu_ms", + "pty_bytes", + "terminal_bytes", + "frames", + "first_result_refresh_ms", + "max_loop_delay_ms", + "p95_loop_delay_ms", + "loop_delays_over_16_7_ms", + "loop_delays_over_50_ms", + "one_core_cpu_percent", + "maxrss_kib", + "rx_bytes", + "tx_bytes", + "first_fetch_ms", + "first_fetch_rx_bytes", + "worker_reported_ms", + "bytes", +] + + +def summarize(records): + # Timings are useful only when the observed completion output is unchanged. + for count in {r.get("objects") for r in records if r["suite"] == "cpu"}: + for scenario in {r["scenario"] for r in records if r["suite"] == "cpu"}: + outputs = {variant: {r["digest"] for r in records if r["suite"] == "cpu" and r["variant"] == variant and r.get("objects") == count and r["scenario"] == scenario} for variant in ["baseline", "candidate"]} + if outputs["baseline"] and outputs["candidate"] and outputs["baseline"] != outputs["candidate"]: + raise AssertionError(f"Completion output changed: {count}, {scenario}") + groups = {} + for record in records: + key = tuple(record.get(k) for k in DIMENSIONS) + groups.setdefault(key, []).append(record) + summaries = [] + for key, rows in groups.items(): + summary = {k: v for k, v in zip(DIMENSIONS, key) if v is not None} + summary["metrics"] = {metric: describe(row[metric] for row in rows if row.get(metric) is not None) for metric in METRICS if any(row.get(metric) is not None for row in rows)} + summaries.append(summary) + return summaries + + +def select(records, **criteria): + return [r for r in records if all(r.get(k) == v for k, v in criteria.items())] + + +def comparison(records, name, before, after, metric, paired=True): + a = select(records, **before) + b = select(records, **after) + if not a or not b: + return None + xs, ys = [r[metric] for r in a], [r[metric] for r in b] + am, bm = statistics.median(xs), statistics.median(ys) + pairs = [] + if paired: + left = {r["trial"]: r[metric] for r in a} + right = {r["trial"]: r[metric] for r in b} + pairs = [(left[t], right[t]) for t in sorted(left.keys() & right.keys())] + paired = len(pairs) == len(a) == len(b) + rng = random.Random(12479) + reductions = [] + differences = [] + for _ in range(5000): + if paired: + draw = rng.choices(pairs, k=len(pairs)) + ax = statistics.median(x for x, y in draw) + by = statistics.median(y for x, y in draw) + else: + ax = statistics.median(rng.choices(xs, k=len(xs))) + by = statistics.median(rng.choices(ys, k=len(ys))) + differences.append(ax - by) + reductions.append(100 * (ax - by) / ax if ax else 0) + return { + "name": name, + "before": before, + "after": after, + "metric": metric, + "n_before": len(a), + "n_after": len(b), + "paired_bootstrap": paired, + "before_median": am, + "after_median": bm, + "saved": am - bm, + "reduction_percent": 100 * (am - bm) / am if am else 0, + "saved_ci95": [quantile(differences, 0.025), quantile(differences, 0.975)], + "reduction_ci95": [quantile(reductions, 0.025), quantile(reductions, 0.975)], + } + + +def build_comparisons(records): + results = [] + + def add(name, suite, scenario, metric, **extra): + common = {"suite": suite, "scenario": scenario, **extra} + result = comparison(records, name, {**common, "variant": "baseline"}, {**common, "variant": "candidate"}, metric, paired=suite != "cpu") + if result: + results.append(result) + + for n in [1000, 5000]: + add(f"completion-ui-{n}", "completion", f"autocomplete_{n}_routines", "wall_ms") + add(f"completion-ui-cpu-{n}", "completion", f"autocomplete_{n}_routines", "cpu_ms") + for condition in ["disabled", "default"]: + add(f"startup-ready-{condition}", "startup", condition, "parent_ready_ms") + add(f"startup-cpu-{condition}", "startup", condition, "process_cpu_ms") + for scenario in ["idle_5s", "editor_idle_5s"]: + add(f"idle-{scenario}", "idle", scenario, "cpu_ms") + add("long-cells-cpu", "long-cells", "render_1000_3_long", "cpu_ms") + add("long-cells-wall", "long-cells", "render_1000_3_long", "wall_ms") + add("algorithm-5000", "cpu", "routine_completion", "wall_ms", objects=5000) + for variant in ["candidate", "bulk", "preview-thread", "timer500", "row-backend"]: + common = {"suite": "render", "scenario": "render_50000_6_normal"} + for metric in ["wall_ms", "cpu_ms", "max_loop_delay_ms", "terminal_bytes"]: + result = comparison(records, f"render50k-{variant}-{metric}", {**common, "variant": "baseline"}, {**common, "variant": variant}, metric) + if result: + results.append(result) + for provider in ["postgresql", "mysql", "mariadb"]: + for delay in [0, 20]: + common = {"suite": "network", "provider": provider, "one_way_delay_ms": delay} + for before, after, metric, label in [ + ("buffered_cap_1000", "server_limit_1001", "rx_bytes", "bandwidth"), + ("buffered_cap_1000", "server_limit_1001", "wall_ms", "bounded-query"), + ("metadata_per_table", "metadata_one_query_per_table", "wall_ms", "metadata-one-query"), + ("metadata_per_table", "metadata_batch", "wall_ms", "metadata-batch"), + ("connect_query_close", "reuse_query", "wall_ms", "connection-reuse"), + ]: + result = comparison(records, f"{label}-{provider}-{delay}", {**common, "scenario": before}, {**common, "scenario": after}, metric) + if result: + results.append(result) + return results + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--input", required=True) + parser.add_argument("--output", required=True) + args = parser.parse_args() + root = Path(args.input) + output = Path(args.output) + output.mkdir(parents=True, exist_ok=True) + records = load_records(root) + summaries = summarize(records) + comparisons = build_comparisons(records) + environments = [json.loads(p.read_text()) for p in sorted(root.glob("environment-*.json"))] + data = { + "record_count": len(records), + "summaries": summaries, + "comparisons": comparisons, + "environments": environments, + "method": { + "median_bootstrap_draws": 2000, + "effect_bootstrap_draws": 5000, + "ci": 0.95, + "tails": "p95 is descriptive; small samples do not establish an SLO", + "multiplicity": "Exploratory intervals; no adjustment for multiple comparisons", + }, + } + (output / "data.json").write_text(json.dumps(data, separators=(",", ":")) + "\n") + scalar_keys = sorted({k for record in records for k, v in record.items() if not isinstance(v, (list, dict))}) + with (output / "measurements.csv").open("w", newline="") as f: + writer = csv.DictWriter(f, fieldnames=scalar_keys, extrasaction="ignore", lineterminator="\n") + writer.writeheader() + for record in records: + writer.writerow({k: v for k, v in record.items() if k in scalar_keys}) + raw = output / "raw" + raw.mkdir(exist_ok=True) + manifest = [] + for index in range(0, len(records), 60): + name = f"observations-{index // 60:03d}.json.gz" + payload = gzip.compress(json.dumps(records[index : index + 60], separators=(",", ":")).encode(), mtime=0) + (raw / name).write_bytes(payload) + manifest.append({"file": name, "records": len(records[index : index + 60]), "sha256": hashlib.sha256(payload).hexdigest()}) + (raw / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n") + print(f"{len(records)} observations, {len(summaries)} groups, {len(comparisons)} comparisons") + for result in comparisons: + if result["name"].startswith(("completion-ui", "startup", "idle", "long-cells", "algorithm")): + print(result["name"], round(result["before_median"], 3), "->", round(result["after_median"], 3), f"{result['reduction_percent']:.1f}%", "CI", *[round(n, 1) for n in result["reduction_ci95"]]) + + +if __name__ == "__main__": + main() diff --git a/labs/performance/variants.py b/labs/performance/variants.py new file mode 100644 index 00000000..93ff2aa0 --- /dev/null +++ b/labs/performance/variants.py @@ -0,0 +1,96 @@ +"""Explicit lab-only interventions; never imported by the production app.""" +from __future__ import annotations + + +def install_variant(name: str) -> None: + if name.startswith("chunk"): + from sqlit.domains.query.ui.mixins import query_results + query_results.RESULTS_RENDER_CHUNK_SIZE = int(name.removeprefix("chunk")) + elif name == "widthcache": + from textual_fastdatatable.backend import ArrowBackend + original = ArrowBackend.append_rows + def append(self, records): + before = self.row_count + widths = list(self._column_content_widths) + result = original(self, records) + if widths: + delta = ArrowBackend(self.data.slice(before)) + delta.render_markup = self.render_markup + self._column_content_widths = [max(a,b) for a,b in zip(widths, delta.column_content_widths)] + return result + ArrowBackend.append_rows = append + elif name == "preview-thread": + import asyncio + + from textual_fastdatatable.backend import ArrowBackend + + from sqlit.domains.query.ui.mixins.query_results import QueryResultsMixin + from sqlit.shared.ui.widgets_tables import _stringify_uuid_rows + def schedule(self, table, columns, rows, *, escape, start_index, row_limit, render_token, **kwargs): + def prepare(): + backend = ArrowBackend.from_records(_stringify_uuid_rows(rows[:row_limit]), column_names=columns) + backend.render_markup = not escape + backend.column_content_widths # measure before returning to UI thread + return backend + async def finish(): + backend = await asyncio.to_thread(prepare) + if render_token != self._results_render_token: + return + ready = self._build_results_table(columns, [], escape=escape, backend=backend) + info = getattr(table, "result_table_info", None) + if info is not None: + ready.result_table_info = info + self._replace_results_table_with_table(ready) + self._results_render_worker = self.run_worker(finish(), exclusive=True, group="lab-render") + QueryResultsMixin._schedule_results_render = schedule + elif name == "idle-demand": + from sqlit.domains.shell.app.idle_scheduler import IdleScheduler + original_schedule = IdleScheduler._schedule_check + original_request = IdleScheduler.request_idle_callback + original_check = IdleScheduler._check_and_work + def schedule(self): + if self._queue and self._timer is None: + original_schedule(self) + def request(self, *a, **kw): + result = original_request(self, *a, **kw) + self._schedule_check() + return result + def check(self): + self._timer = None + original_check(self) + IdleScheduler._schedule_check = schedule + IdleScheduler.request_idle_callback = request + IdleScheduler._check_and_work = check + elif name == "no-blink": + from sqlit.shared.ui.widgets_text_area import QueryTextArea + original_init = QueryTextArea.__init__ + def init(self, *a, **kw): + original_init(self, *a, **kw) + self.cursor_blink = False + QueryTextArea.__init__ = init + elif name.startswith("timer"): + from sqlit.domains.query.ui.mixins import query_results + from sqlit.domains.shell.app.idle_scheduler import IdleScheduler + query_results.RESULTS_RENDER_CHUNK_SIZE = int(name.removeprefix("timer")) + original_request = IdleScheduler.request_idle_callback + def request(self, callback, *a, **kw): + if kw.get("name") == "results-render": + self.app.set_timer(.001, callback) + return True + return original_request(self, callback, *a, **kw) + IdleScheduler.request_idle_callback = request + elif name == "clipcells": + from rich.text import Text + from textual.coordinate import Coordinate + + from sqlit.shared.ui.widgets_tables import SqlitDataTable + original = SqlitDataTable._get_cell_renderable + def render(self,row_index,column_index,max_width=None): + if row_index>=0 and max_width and not self.render_markup: + value=self.get_cell_at(Coordinate(row_index,column_index)) + if isinstance(value,str) and len(value)>max_width and '\n' not in value and '\r' not in value: + text=Text(value,no_wrap=True) + text.truncate(max_width,overflow="ellipsis") + return text + return original(self,row_index,column_index,max_width) + SqlitDataTable._get_cell_renderable = render diff --git a/labs/performance/verify_cells.py b/labs/performance/verify_cells.py new file mode 100644 index 00000000..f3e4147c --- /dev/null +++ b/labs/performance/verify_cells.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +"""Capture long literal/Unicode cells while checking complete backend values.""" +from __future__ import annotations + +import argparse +import asyncio +import os +import tempfile +from pathlib import Path + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", required=True, help="Textual SVG screenshot path") + args = parser.parse_args() + output = Path(args.output).resolve() + output.parent.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory(prefix="sqlit-cell-display-") as temp: + os.environ["SQLIT_CONFIG_DIR"] = temp + os.environ["SQLIT_SKIP_KEYRING_PROBE"] = "1" + from textual.coordinate import Coordinate + + from sqlit.domains.shell.app.main import SSMSTUI + from sqlit.shared.app.runtime import RuntimeConfig + from tests.ui.mocks import MockConnectionStore, MockSettingsStore, build_test_services + + async def capture(): + services = build_test_services( + runtime=RuntimeConfig(process_worker=False, process_worker_warm_on_idle=False), + connection_store=MockConnectionStore(), settings_store=MockSettingsStore({"theme": "tokyo-night"}), + ) + app = SSMSTUI(services=services) + rows = [(i, "[bold]literal[/bold] " + "abcdef " * 1000 if i % 2 else "界e\u0301🙂 " * 1000) for i in range(1, 49)] + async with app.run_test(size=(160, 40)) as pilot: + # Lazy result widgets mount after the initial app refresh. + await pilot.pause(.1) + await app._display_query_results(["id", "complete_source_value"], rows, len(rows), False, 0) + await pilot.pause(.1) + app.results_table.focus() + app.query_input.text = "-- Oversized values are clipped only for display.\nSELECT id, complete_source_value FROM lab_values;" + await pilot.pause(.1) + assert app.results_table.row_count == len(rows) + for i, row in enumerate(rows): + assert app.results_table.get_cell_at(Coordinate(i, 1)) == row[1] + output.write_text(app.export_screenshot(title="sqlit: bounded literal cell display")) + asyncio.run(capture()) + print(f"Verified 48 complete long/Unicode values; screenshot: {output}") + + +if __name__ == "__main__": + main() diff --git a/labs/performance/verify_code.py b/labs/performance/verify_code.py new file mode 100644 index 00000000..ede295bb --- /dev/null +++ b/labs/performance/verify_code.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +"""Run isolated regression or compatibility lanes and retain code provenance.""" +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import subprocess +import tempfile +from pathlib import Path + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo", required=True) + parser.add_argument("--python", required=True) + parser.add_argument("--output", required=True, help="Output prefix for .log, .xml and .meta.json") + parser.add_argument("--compatibility", action="store_true") + parser.add_argument("--dry-run", action="store_true") + args = parser.parse_args() + repo, output = Path(args.repo).resolve(), Path(args.output).resolve() + def git(*argv): + return subprocess.check_output(["git", *argv], cwd=repo, text=True).strip() + if git("diff", "HEAD", "--", "sqlit", "tests"): + raise RuntimeError("Commit the source and regression tests before recording a verification lane") + source_sha, code_tree = git("rev-parse", "HEAD"), git("rev-parse", "HEAD:sqlit") + paths = ["tests/unit", "tests/ui", "tests/cli", "tests/test_sqlite.py", "tests/test_duckdb.py"] + if args.compatibility: + paths = [ + "tests/unit/test_completion_scaling.py", "tests/unit/test_mssql_routine_completion.py", "tests/unit/sql_completion", + "tests/unit/test_autocomplete_multidb.py", "tests/unit/test_autocomplete_alias_multi_db.py", "tests/unit/test_autocomplete_cr_line_endings.py", + "tests/unit/test_autocomplete_cursor_positions.py", "tests/unit/test_idle_scheduler_demand.py", "tests/unit/test_cli_prewarm.py", + "tests/unit/test_project_dir_routing.py", "tests/cli/test_cli_main.py", "tests/unit/test_table_display_bounds.py", + "tests/ui/test_results_incremental_rendering.py", "tests/unit/test_incremental_rendering_numeric_range.py", + ] + command = [args.python, "-m", "pytest", *paths, "--timeout=45", "-q", "--tb=short", f"--junitxml={output}.xml"] + if args.dry_run: + print(json.dumps({"source_sha": source_sha, "code_tree": code_tree, "command": command})) + return + output.parent.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory(prefix="sqlit-regression-") as temp: + env = os.environ.copy() + env.update(PYTHONPATH=str(repo), SQLIT_CONFIG_DIR=temp, TMPDIR=temp, + SQLIT_SKIP_KEYRING_PROBE="1", PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring") + with Path(f"{output}.log").open("w") as log: + result = subprocess.run(command, cwd=repo, env=env, stdout=log, stderr=subprocess.STDOUT) + if git("rev-parse", "HEAD:sqlit") != code_tree or git("diff", "HEAD", "--", "sqlit", "tests"): + raise RuntimeError("Code changed during verification") + metadata = {"source_sha": source_sha, "code_tree": code_tree, "command": command, "exit_code": result.returncode, + "junit_sha256": hashlib.sha256(Path(f"{output}.xml").read_bytes()).hexdigest()} + Path(f"{output}.meta.json").write_text(json.dumps(metadata, indent=2) + "\n") + raise SystemExit(result.returncode) + + +if __name__ == "__main__": + main() diff --git a/labs/performance/verify_report.cjs b/labs/performance/verify_report.cjs new file mode 100644 index 00000000..1c7b007b --- /dev/null +++ b/labs/performance/verify_report.cjs @@ -0,0 +1,93 @@ +/* Headless report QA: node verify_report.cjs REPORT OUTPUT [PLAYWRIGHT_MODULE] [CHROMIUM]. */ +const fs = require('node:fs'); +const path = require('node:path'); +const { pathToFileURL } = require('node:url'); +const assert = require('node:assert/strict'); +const [reportArg, outArg, moduleArg, executableArg] = process.argv.slice(2); +if (!reportArg || !outArg) throw new Error('Expected REPORT and OUTPUT paths'); +const { chromium } = require(moduleArg || 'playwright'); +const remote = /^https?:\/\//.test(reportArg); +const report = remote ? reportArg : path.resolve(reportArg), output = path.resolve(outArg); +const reportUrl = remote ? report : pathToFileURL(report).href; +const reportOrigin = remote ? new URL(report).origin : null; +fs.mkdirSync(output, { recursive: true }); + +(async () => { + const browser = await chromium.launch({ headless: true, ...(executableArg ? { executablePath: executableArg } : {}) }); + const page = await browser.newPage({ viewport: { width: 1440, height: 1000 }, deviceScaleFactor: 1 }); + const errors = [], externalRequests = []; + page.on('pageerror', error => errors.push(error.message)); + page.on('request', request => { if (/^https?:/.test(request.url()) && (!remote || new URL(request.url()).origin !== reportOrigin)) externalRequests.push(request.url()); }); + if (report.endsWith('.svg')) { + const source = fs.readFileSync(report, 'utf8'); + await page.setContent('' + source.slice(source.indexOf(' document.documentElement.scrollWidth <= innerWidth), true); + const missing = await page.evaluate(() => [...document.querySelectorAll('a[href^="#"]')].filter(a => !document.querySelector(a.getAttribute('href'))).map(a => a.getAttribute('href'))); + assert.deepEqual(missing, []); + const localLinks = await page.locator('a[href]').evaluateAll(anchors => anchors.map(a => a.getAttribute('href')).filter(h => h && !/^(https?:|#|blob:)/.test(h))); + if (remote) { + for (const href of localLinks) { + const resource = await page.request.get(new URL(href, report).href); + assert.ok(resource.ok(), `Missing live resource: ${href} (${resource.status()})`); + } + } else { + for (const href of localLinks) assert.ok(fs.existsSync(path.resolve(path.dirname(report), href)), `Missing link: ${href}`); + } + await page.screenshot({ path: path.join(output, 'desktop.png') }); + await page.locator('#fig-completion').screenshot({ path: path.join(output, 'completion-figure.png') }); + await page.locator('#fig-render-tradeoffs').screenshot({ path: path.join(output, 'render-figure.png') }); + await page.selectOption('#suite', 'network'); + await page.selectOption('#metric', 'rx_bytes'); + await page.fill('#filter', 'mysql'); + assert.equal(await page.locator('#observations tbody tr').count(), 16); + assert.ok((await page.locator('#observations tbody').innerText()).includes('13,439,025')); + const downloading = page.waitForEvent('download'); + await page.click('#export'); + const downloaded = await downloading; + await downloaded.saveAs(path.join(output, 'filtered-measurements.csv')); + assert.equal(fs.readFileSync(path.join(output, 'filtered-measurements.csv'), 'utf8').split('\n').length, 17); + await page.selectOption('#trace-example', 'candidate'); + assert.ok((await page.locator('#trace-status').innerText()).includes('28.91 ms')); + await page.selectOption('#trace-mode', 'spans'); + assert.equal(await page.locator('#trace-chart rect').count(), 2); + if (remote) { + const resource = await page.request.get(new URL('diagnostics/completion-baseline.trace.json', report).href); + assert.ok(resource.ok()); + await page.setInputFiles('#trace-file', { name: 'completion-baseline.trace.json', mimeType: 'application/json', buffer: await resource.body() }); + } else { + await page.setInputFiles('#trace-file', path.join(path.dirname(report), 'diagnostics', 'completion-baseline.trace.json')); + } + await page.selectOption('#trace-mode', 'delay'); + assert.equal(await page.locator('#trace-example').inputValue(), 'custom'); + assert.ok((await page.locator('#trace-status').innerText()).includes('1629.86 ms')); + await page.locator('#trace-chart').screenshot({ path: path.join(output, 'trace-viewer.png') }); + await page.setViewportSize({ width: 390, height: 844 }); + await page.goto(reportUrl); + await page.screenshot({ path: path.join(output, 'mobile.png') }); + assert.equal(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth), true, 'Mobile page overflows horizontally'); + await page.locator('#explorer h2').scrollIntoViewIfNeeded(); + await page.screenshot({ path: path.join(output, 'mobile-explorer.png') }); + assert.deepEqual(errors, []); + assert.deepEqual(externalRequests, []); + const result = { reportUrl, desktop: [1440, 1000], mobile: [390, 844], figures: 11, localLinks: localLinks.length, + filteredCsvRows: 16, traceUpload: 'passed', horizontalOverflow: false, pageErrors: errors, externalRequests, + browserVersion: browser.version(), nodeVersion: process.version }; + fs.writeFileSync(path.join(output, 'browser-qa.json'), JSON.stringify(result, null, 2) + '\n'); + console.log(JSON.stringify(result)); + await browser.close(); +})().catch(error => { console.error(error); process.exit(1); }); diff --git a/sqlit/cli.py b/sqlit/cli.py index 0c8cd88e..b61d35b9 100644 --- a/sqlit/cli.py +++ b/sqlit/cli.py @@ -16,11 +16,18 @@ from sqlit.domains.connections.domain.config import AuthType, ConnectionConfig, DatabaseType from sqlit.domains.connections.providers.catalog import get_provider_schema, get_supported_db_types from sqlit.shared.app.runtime import MockConfig, RuntimeConfig +from sqlit.shared.app.services import build_app_services from sqlit.shared.app.startup_profiler import configure as configure_startup_profiler from sqlit.shared.app.startup_profiler import enable_import_timing from sqlit.shared.app.startup_profiler import log_step as log_startup_step from sqlit.shared.app.startup_profiler import span as startup_span -from sqlit.shared.app.services import build_app_services + +_GLOBAL_VALUE_FLAGS = { + "--mock", "--db-type", "--name", "--settings", "--theme", "--connection", "-c", + "--mock-missing-drivers", "--mock-install", "--mock-pipx", "--mock-query-delay", + "--demo-rows", "--max-rows", "--profile-startup-file", "--profile-startup-imports-file", + "--profile-startup-imports-min-ms", +} def _get_schema_value_flags() -> set[str]: @@ -72,6 +79,10 @@ def _extract_project_dir(argv: list[str]) -> tuple[Path | None, list[str]]: # Flags pass straight through (let argparse handle them). if arg.startswith("-"): result_argv.append(arg) + if "=" not in arg and i + 1 < len(argv) and not argv[i + 1].startswith("-"): + if arg in _GLOBAL_VALUE_FLAGS or arg in _get_schema_value_flags(): + i += 1 + result_argv.append(argv[i]) i += 1 continue # First subcommand: copy the rest verbatim. @@ -122,21 +133,7 @@ def _extract_connection_url(argv: list[str]) -> tuple[str | None, list[str]]: # Check if this flag takes a value (simple heuristic: next arg doesn't start with -) if i + 1 < len(argv) and not argv[i + 1].startswith("-") and "=" not in arg: # Flags that take values - value_flags = { - "--mock", - "--db-type", - "--name", - "--settings", - "--theme", - "--mock-missing-drivers", - "--mock-install", - "--mock-pipx", - "--mock-query-delay", - "--demo-rows", - "--max-rows", - } - value_flags |= _get_schema_value_flags() - if arg in value_flags: + if arg in _GLOBAL_VALUE_FLAGS or arg in _get_schema_value_flags(): i += 1 result_argv.append(argv[i]) i += 1 @@ -177,7 +174,7 @@ def _sane_tty() -> None: pass -def _prewarm_process_worker(runtime: RuntimeConfig) -> Any | None: +def _prewarm_process_worker(runtime: RuntimeConfig, *, settings_store: Any | None = None) -> Any | None: """Spawn the process worker before the Textual App is constructed. `multiprocessing.spawn` collects the parent's open file descriptors at @@ -191,6 +188,10 @@ def _prewarm_process_worker(runtime: RuntimeConfig) -> Any | None: disabled. On failure we fall through to the lazy path inside the UI; on macOS that path raises and the in-process executor takes over. """ + # Mount applies this same setting, but spawning happens before mount. Honor + # the stored preference here so a disabled worker is never started first. + if settings_store is not None: + runtime.process_worker = bool(settings_store.get("process_worker", runtime.process_worker)) if not runtime.process_worker: return None if runtime.mock.enabled: @@ -883,7 +884,7 @@ def main() -> int: # Spawn the worker before the Textual App is constructed; see # _prewarm_process_worker for why this matters on macOS. - process_worker_client = _prewarm_process_worker(runtime) + process_worker_client = _prewarm_process_worker(runtime, settings_store=services.settings_store) app = SSMSTUI( services=services, startup_connection=startup_config, @@ -949,7 +950,7 @@ def main() -> int: print(f"Error: {alert_error}") return 1 - process_worker_client = _prewarm_process_worker(runtime) + process_worker_client = _prewarm_process_worker(runtime, settings_store=services.settings_store) app = SSMSTUI( services=services, startup_connection=temp_config, diff --git a/sqlit/domains/query/completion/completion.py b/sqlit/domains/query/completion/completion.py index ee94d23a..584ce1f3 100644 --- a/sqlit/domains/query/completion/completion.py +++ b/sqlit/domains/query/completion/completion.py @@ -214,19 +214,25 @@ def get_completions( List of completion suggestions """ before_cursor = sql[:cursor_pos] + if not before_cursor.strip() or is_inside_string(before_cursor): + return [] current_word = get_current_word(sql, cursor_pos) routines = procedures or [] - def routine_display_name(routine: object) -> str: - name = str(routine) - identities = { + # Build the ambiguity index once. Scanning all routines for every candidate + # makes each editor completion quadratic in the size of the catalog. + routine_identities: dict[str, set[tuple[str, str]]] = {} + for routine in routines: + routine_identities.setdefault(str(routine).lower(), set()).add( ( - str(getattr(candidate, "database", "")).lower(), - str(getattr(candidate, "schema", "")).lower(), + str(getattr(routine, "database", "")).lower(), + str(getattr(routine, "schema", "")).lower(), ) - for candidate in routines - if str(candidate).lower() == name.lower() - } + ) + + def routine_display_name(routine: object) -> str: + name = str(routine) + identities = routine_identities[name.lower()] if len(identities) <= 1: return name parts = [ @@ -287,14 +293,6 @@ def scoped_routine_names( ] table_function_names = [routine_display_name(routine) for routine in table_function_routines] - # Don't suggest if inside string literal - if is_inside_string(before_cursor): - return [] - - # Don't suggest if there's no SQL content yet (just whitespace) - if not before_cursor.strip(): - return [] - # Try DDL-specific handlers first (they return completions directly) for ddl_handler in [ get_create_table_completions, diff --git a/sqlit/domains/shell/app/idle_scheduler.py b/sqlit/domains/shell/app/idle_scheduler.py index 74c2bd05..dc9b00be 100644 --- a/sqlit/domains/shell/app/idle_scheduler.py +++ b/sqlit/domains/shell/app/idle_scheduler.py @@ -31,7 +31,7 @@ class IdleJob: priority: Priority = Priority.NORMAL is_async: bool = False name: str = "" - created_at: float = field(default_factory=time.time) + created_at: float = field(default_factory=time.monotonic) def __lt__(self, other: IdleJob) -> bool: # Higher priority first, then older jobs first @@ -72,7 +72,7 @@ def __init__( self.max_queue_size = max_queue_size self._queue: deque[IdleJob] = deque() - self._last_activity_time: float = time.time() + self._last_activity_time: float = time.monotonic() self._running = False self._timer: Any = None self._paused = False @@ -85,13 +85,13 @@ def __init__( @property def is_idle(self) -> bool: """Check if user is considered idle.""" - elapsed_ms = (time.time() - self._last_activity_time) * 1000 + elapsed_ms = (time.monotonic() - self._last_activity_time) * 1000 return elapsed_ms >= self.idle_threshold_ms @property def time_until_idle_ms(self) -> float: """Time remaining until user is considered idle.""" - elapsed_ms = (time.time() - self._last_activity_time) * 1000 + elapsed_ms = (time.monotonic() - self._last_activity_time) * 1000 return max(0, self.idle_threshold_ms - elapsed_ms) @property @@ -104,7 +104,7 @@ def on_user_activity(self) -> None: Should be hooked into key presses, mouse events, etc. """ - self._last_activity_time = time.time() + self._last_activity_time = time.monotonic() def request_idle_callback( self, @@ -138,6 +138,7 @@ def request_idle_callback( # Insert maintaining priority order # For simplicity, just append and sort when executing self._queue.append(job) + self._schedule_check() return True def cancel_all(self, name: str | None = None) -> int: @@ -153,10 +154,13 @@ def cancel_all(self, name: str | None = None) -> int: if name is None: count = len(self._queue) self._queue.clear() + self._stop_timer() return count original_len = len(self._queue) self._queue = deque(job for job in self._queue if job.name != name) + if not self._queue: + self._stop_timer() return original_len - len(self._queue) def start(self) -> None: @@ -169,6 +173,9 @@ def start(self) -> None: def stop(self) -> None: """Stop the idle scheduler.""" self._running = False + self._stop_timer() + + def _stop_timer(self) -> None: if self._timer: self._timer.stop() self._timer = None @@ -176,14 +183,16 @@ def stop(self) -> None: def pause(self) -> None: """Temporarily pause processing (queue still accepts jobs).""" self._paused = True + self._stop_timer() def resume(self) -> None: """Resume processing after pause.""" self._paused = False + self._schedule_check() def _schedule_check(self) -> None: """Schedule the next idle check.""" - if not self._running: + if not self._running or self._paused or not self._queue or self._timer is not None: return # Use Textual's timer @@ -192,6 +201,7 @@ def _schedule_check(self) -> None: def _check_and_work(self) -> None: """Check if idle and do work if so.""" + self._timer = None if not self._running or self._paused: self._schedule_check() return @@ -209,11 +219,13 @@ def _check_and_work(self) -> None: self._do_work_chunk() # Schedule next check + if not self._queue: + self._stop_timer() self._schedule_check() def _do_work_chunk(self) -> None: """Execute jobs for up to max_work_chunk_ms.""" - start_time = time.time() + start_time = time.monotonic() max_time = self.max_work_chunk_ms / 1000 # Sort queue by priority (do this lazily) @@ -222,7 +234,7 @@ def _do_work_chunk(self) -> None: while self._queue: # Check if we've exceeded our time budget - elapsed = time.time() - start_time + elapsed = time.monotonic() - start_time if elapsed >= max_time: break @@ -244,7 +256,7 @@ def _do_work_chunk(self) -> None: self.app.log.error(f"IdleScheduler job failed: {job.name or 'unnamed'}: {e}") # Track stats - self._total_work_time_ms += (time.time() - start_time) * 1000 + self._total_work_time_ms += (time.monotonic() - start_time) * 1000 # Refresh status bar if debug mode is on if hasattr(self.app, "_debug_idle_scheduler") and self.app._debug_idle_scheduler: diff --git a/sqlit/shared/ui/widgets_tables.py b/sqlit/shared/ui/widgets_tables.py index cd617f31..eb013eee 100644 --- a/sqlit/shared/ui/widgets_tables.py +++ b/sqlit/shared/ui/widgets_tables.py @@ -103,16 +103,27 @@ def _get_cell_renderable( column_index: int, max_width: int | None = None, ) -> Any: - """Format cells with plain text for NULL/bool/date values. + """Format visible cells without sending oversized strings to Rich. - ``textual-fastdatatable`` 0.19 passes the available cell width to this - hook. Keep accepting it even though sqlit's formatter currently relies - on Rich to crop the returned renderable. + Crop only the display representation; the backend retains the complete + value for copying, filtering, exporting and the value viewer. """ if row_index == -1: return self.ordered_columns[column_index].label datum = self.get_cell_at(Coordinate(row=row_index, column=column_index)) + if ( + max_width is not None + and max_width > 0 + and not self.render_markup + and isinstance(datum, str) + and len(datum) > max_width + and "\n" not in datum + and "\r" not in datum + ): + text = Text(datum, no_wrap=True) + text.truncate(max_width, overflow="ellipsis") + return text column = self.ordered_columns[column_index] return self._format_cell(datum, column) diff --git a/tests/unit/test_cli_prewarm.py b/tests/unit/test_cli_prewarm.py index 19040629..56c6fddf 100644 --- a/tests/unit/test_cli_prewarm.py +++ b/tests/unit/test_cli_prewarm.py @@ -16,6 +16,26 @@ def test_prewarm_skipped_when_worker_disabled() -> None: klass.assert_not_called() +def test_prewarm_honors_saved_disabled_setting_before_mount() -> None: + runtime = RuntimeConfig(process_worker=True) + settings = MagicMock() + settings.get.return_value = False + with patch("sqlit.domains.process_worker.app.process_worker_client.ProcessWorkerClient") as klass: + result = _prewarm_process_worker(runtime, settings_store=settings) + assert result is None + assert runtime.process_worker is False + klass.assert_not_called() + + +def test_prewarm_keeps_early_spawn_when_saved_worker_is_enabled() -> None: + runtime = RuntimeConfig(process_worker=True) + settings = MagicMock() + settings.get.return_value = True + with patch("sqlit.domains.process_worker.app.process_worker_client.ProcessWorkerClient") as klass: + assert _prewarm_process_worker(runtime, settings_store=settings) is klass.return_value + klass.assert_called_once() + + def test_prewarm_skipped_when_mock_enabled() -> None: runtime = RuntimeConfig(process_worker=True, mock=MockConfig(enabled=True)) with patch("sqlit.domains.process_worker.app.process_worker_client.ProcessWorkerClient") as klass: diff --git a/tests/unit/test_completion_scaling.py b/tests/unit/test_completion_scaling.py new file mode 100644 index 00000000..1e7c78d8 --- /dev/null +++ b/tests/unit/test_completion_scaling.py @@ -0,0 +1,39 @@ +"""Bound routine-name work without weakening completion/disambiguation behavior.""" +from sqlit.domains.connections.providers.adapters.base import RoutineInfo +from sqlit.domains.query.completion import get_completions + + +def test_routine_completion_does_not_rescan_catalog_per_candidate(): + class CountedRoutine(RoutineInfo): + conversions = 0 + + def __str__(self): + type(self).conversions += 1 + return super().__str__() + + count = 500 + routines = [CountedRoutine(f"proc_{i:04d}", schema="dbo", database="lab") for i in range(count)] + sql = "EXEC proc_" + suggestions = get_completions(sql, len(sql), [], {}, routines) + assert suggestions == [f"proc_{i:04d}" for i in range(50)] + assert CountedRoutine.conversions < count * 15 + + +def test_routine_disambiguation_keeps_database_schema_and_original_case(): + routines = [ + RoutineInfo("RunReport", schema="sales", database="first"), + RoutineInfo("RunReport", schema="sales", database="second"), + RoutineInfo("RunReport", schema="ops", database="first"), + RoutineInfo("UniqueReport", schema="sales", database="first"), + ] + sql = "EXEC " + suggestions = get_completions(sql, len(sql), [], {}, routines) + assert set(suggestions) == {"first.sales.RunReport", "second.sales.RunReport", "first.ops.RunReport", "UniqueReport"} + + +def test_blank_completion_does_not_read_routine_catalog(): + class UnreadableRoutine(str): + def __str__(self): + raise AssertionError("Blank SQL must not inspect routines") + + assert get_completions(" \n", 2, [], {}, [UnreadableRoutine("anything")]) == [] diff --git a/tests/unit/test_idle_scheduler_demand.py b/tests/unit/test_idle_scheduler_demand.py new file mode 100644 index 00000000..876c3737 --- /dev/null +++ b/tests/unit/test_idle_scheduler_demand.py @@ -0,0 +1,100 @@ +"""Scheduler lifecycle: no polling when empty, and no lost work on restart.""" +from unittest.mock import Mock + +from sqlit.domains.shell.app.idle_scheduler import IdleScheduler, Priority + + +class ManualTimer: + def __init__(self, callback): + self.callback = callback + self.stopped = False + + def stop(self): + self.stopped = True + + +class TimerApp: + def __init__(self): + self.timers = [] + self.log = Mock() + + def set_timer(self, _delay, callback): + timer = ManualTimer(callback) + self.timers.append(timer) + return timer + + def fire(self): + timer = next(t for t in self.timers if not t.stopped) + timer.stopped = True + timer.callback() + + @property + def pending(self): + return sum(not t.stopped for t in self.timers) + + +def test_empty_scheduler_sleeps_and_wakes_for_new_work(): + app = TimerApp() + scheduler = IdleScheduler(app, idle_threshold_ms=0) + scheduler.start() + assert app.pending == 0 + called = [] + scheduler.request_idle_callback(lambda: called.append(1)) + scheduler.request_idle_callback(lambda: called.append(2)) + assert app.pending == 1 + app.fire() + assert called == [1, 2] + assert app.pending == 0 + scheduler.request_idle_callback(lambda: called.append(3)) + app.fire() + assert called == [1, 2, 3] + assert app.pending == 0 + + +def test_pause_resume_and_stop_start_preserve_pending_jobs(): + app = TimerApp() + scheduler = IdleScheduler(app, idle_threshold_ms=0) + called = Mock() + scheduler.start() + scheduler.request_idle_callback(called) + scheduler.pause() + assert app.pending == 0 + scheduler.resume() + assert app.pending == 1 + scheduler.stop() + assert app.pending == 0 + scheduler.start() + app.fire() + called.assert_called_once() + assert app.pending == 0 + + +def test_cancel_last_job_disarms_timer_and_keeps_other_named_jobs(): + app = TimerApp() + scheduler = IdleScheduler(app, idle_threshold_ms=0) + scheduler.start() + called = Mock() + scheduler.request_idle_callback(called, name="cancel") + scheduler.request_idle_callback(called, name="keep") + assert scheduler.cancel_all("cancel") == 1 + assert app.pending == 1 + assert scheduler.cancel_all("keep") == 1 + assert app.pending == 0 + called.assert_not_called() + + +def test_activity_defers_jobs_and_reentrant_request_does_not_duplicate_timers(monkeypatch): + now = [100.0] + monkeypatch.setattr("sqlit.domains.shell.app.idle_scheduler.time.monotonic", lambda: now[0]) + app = TimerApp() + scheduler = IdleScheduler(app, idle_threshold_ms=500) + called = [] + scheduler.start() + scheduler.request_idle_callback(lambda: scheduler.request_idle_callback(lambda: called.append("later"))) + scheduler.request_idle_callback(lambda: called.append("first"), priority=Priority.HIGH) + app.fire() + assert called == [] and app.pending == 1 + now[0] += 1 + app.fire() + assert called == ["first", "later"] + assert app.pending == 0 diff --git a/tests/unit/test_project_dir_routing.py b/tests/unit/test_project_dir_routing.py index 413a239c..4f9b3037 100644 --- a/tests/unit/test_project_dir_routing.py +++ b/tests/unit/test_project_dir_routing.py @@ -15,6 +15,15 @@ from sqlit.shared.app.runtime import RuntimeConfig +@pytest.mark.parametrize("flag", ["--profile-startup-file", "--profile-startup-imports-file", "--settings", "--file-path"]) +def test_path_flag_value_is_not_a_project_directory(tmp_path, flag): + path = str(tmp_path / "not-created-yet.txt") + args = ["sqlit", flag, path, str(tmp_path)] + project_dir, remaining = _extract_project_dir(args) + assert project_dir == tmp_path + assert remaining == ["sqlit", flag, path] + + class TestLooksLikePath: @pytest.mark.parametrize( "arg", diff --git a/tests/unit/test_table_display_bounds.py b/tests/unit/test_table_display_bounds.py new file mode 100644 index 00000000..9fd7d75f --- /dev/null +++ b/tests/unit/test_table_display_bounds.py @@ -0,0 +1,24 @@ +"""Long-cell cropping must never truncate the stored SQL value.""" +import pytest +from rich.text import Text +from textual.coordinate import Coordinate + +from sqlit.shared.ui.widgets_tables import SqlitDataTable + + +@pytest.mark.parametrize("value", ["x" * 10000, "界" * 100, "e\u0301" * 100, "[bold]literal[/bold]" * 100, "🙂" * 100]) +def test_long_literal_cell_is_bounded_but_backend_value_is_complete(value): + table = SqlitDataTable(data=[(value,)], column_labels=["value"], render_markup=False) + renderable = table._get_cell_renderable(0, 0, max_width=12) + assert isinstance(renderable, Text) + assert renderable.cell_len <= 12 + assert renderable.plain.endswith("…") + assert table.get_cell_at(Coordinate(0, 0)) == value + + +def test_markup_cell_keeps_its_existing_formatting_path(): + table = SqlitDataTable(data=[("[bold]hello[/bold]",)], column_labels=["value"], render_markup=True) + renderable = table._get_cell_renderable(0, 0, max_width=3) + assert isinstance(renderable, Text) + assert renderable.plain == "hello" + assert renderable.spans