Over time · 2026-10-08 to 2026-10-12

Every run, every kernel.

neo in white, the engine closest to it at the last run dashed. A hollow point was taken on a busy machine.

How these were taken

Every run the ledgers kept of neo against the others, oldest first: nothing on this tab was measured again for it. A flag is a move of neo's time from one run to the next beyond what a re-run moves by itself (5% at a millisecond and over, 10% under it): green and down is quicker, amber and up is slower, with the day it was recorded. Within the band it is noise and is not flagged. A hollow point was recorded on a busy machine.

Against the field, 1,000,000 rows

load the CSV

10.4 → 2.77 ms

3.8× quicker over 11 runs, 10-08 to 10-11 · Polars 15.2 ms at the last

neo 2.77Polars 15.210-0810-112026-10-08 19:52 · busy machine · neo 10.4 ms · Polars 17.2 ms · c138ccb2026-10-08 20:08 · busy machine · neo 8.78 ms · Polars 15.6 ms · ab951ac2026-10-10 11:52 · busy machine · neo 8.31 ms · Polars 15.6 ms · afeb06c2026-10-10 12:00 · neo 8.89 ms · Polars 15.5 ms · afeb06c2026-10-11 10:29 · neo 4.31 ms · Polars 16.6 ms · f1d835a2026-10-11 16:03 · neo 2.95 ms · Polars 16.9 ms · f1d835a2026-10-11 17:08 · neo 2.89 ms · Polars 15.6 ms · f1d835a2026-10-11 17:31 · neo 2.92 ms · Polars 15.3 ms · f1d835a2026-10-11 21:01 · neo 2.83 ms · Polars 15.1 ms · f1d835a2026-10-11 21:13 · neo 2.93 ms · Polars 14.8 ms · f1d835a2026-10-11 21:23 · neo 2.77 ms · Polars 15.2 ms · f1d835a

filter, count

0.021 → 0.018 ms

1.2× quicker over 11 runs, 10-08 to 10-11 · Polars 0.179 ms at the last

neo 0.018Polars 0.17910-0810-112026-10-08 19:52 · busy machine · neo 0.021 ms · Polars 0.198 ms · c138ccb2026-10-08 20:08 · busy machine · neo 0.014 ms · Polars 0.208 ms · ab951ac2026-10-10 11:52 · busy machine · neo 0.014 ms · Polars 0.219 ms · afeb06c2026-10-10 12:00 · neo 0.014 ms · Polars 0.191 ms · afeb06c2026-10-11 10:29 · neo 0.014 ms · Polars 0.201 ms · f1d835a2026-10-11 16:03 · neo 0.014 ms · Polars 0.177 ms · f1d835a2026-10-11 17:08 · neo 0.014 ms · Polars 0.171 ms · f1d835a2026-10-11 17:31 · neo 0.014 ms · Polars 0.178 ms · f1d835a2026-10-11 21:01 · neo 0.017 ms · Polars 0.187 ms · f1d835a2026-10-11 21:13 · neo 0.017 ms · Polars 0.178 ms · f1d835a2026-10-11 21:23 · neo 0.018 ms · Polars 0.179 ms · f1d835a

filter into a new table

1.40 → 0.380 ms

3.7× quicker over 11 runs, 10-08 to 10-11 · Polars 0.889 ms at the last

neo 0.380Polars 0.88910-0810-112026-10-08 19:52 · busy machine · neo 1.40 ms · Polars 1.08 ms · c138ccb2026-10-08 20:08 · busy machine · neo 0.415 ms · Polars 1.06 ms · ab951ac2026-10-10 11:52 · busy machine · neo 0.319 ms · Polars 0.938 ms · afeb06c2026-10-10 12:00 · neo 0.295 ms · Polars 1.09 ms · afeb06c2026-10-11 10:29 · neo 0.490 ms · Polars 1.14 ms · f1d835a2026-10-11 16:03 · neo 0.383 ms · Polars 1.06 ms · f1d835a2026-10-11 17:08 · neo 0.333 ms · Polars 1.09 ms · f1d835a2026-10-11 17:31 · neo 0.316 ms · Polars 1.06 ms · f1d835a2026-10-11 21:01 · neo 0.364 ms · Polars 0.908 ms · f1d835a2026-10-11 21:13 · neo 0.319 ms · Polars 0.999 ms · f1d835a2026-10-11 21:23 · neo 0.380 ms · Polars 0.889 ms · f1d835a

sort, as a permutation

1.05 → 1.03 ms

level over 11 runs, 10-08 to 10-11 · Polars 6.68 ms at the last

neo 1.03Polars 6.6810-0810-112026-10-08 19:52 · busy machine · neo 1.05 ms · Polars 7.34 ms · c138ccb2026-10-08 20:08 · busy machine · neo 1.07 ms · Polars 7.27 ms · ab951ac2026-10-10 11:52 · busy machine · neo 1.05 ms · Polars 6.35 ms · afeb06c2026-10-10 12:00 · neo 1.06 ms · Polars 6.62 ms · afeb06c2026-10-11 10:29 · neo 1.06 ms · Polars 7.23 ms · f1d835a2026-10-11 16:03 · neo 1.03 ms · Polars 7.11 ms · f1d835a2026-10-11 17:08 · neo 1.02 ms · Polars 6.80 ms · f1d835a2026-10-11 17:31 · neo 1.03 ms · Polars 7.18 ms · f1d835a2026-10-11 21:01 · neo 1.04 ms · Polars 6.58 ms · f1d835a2026-10-11 21:13 · neo 1.06 ms · Polars 6.83 ms · f1d835a2026-10-11 21:23 · neo 1.03 ms · Polars 6.68 ms · f1d835a

sort into a new table

3.07 → 2.72 ms

1.1× quicker over 11 runs, 10-08 to 10-11 · Polars 12.2 ms at the last

neo 2.72Polars 12.210-0810-112026-10-08 19:52 · busy machine · neo 3.07 ms · Polars 13.7 ms · c138ccb2026-10-08 20:08 · busy machine · neo 2.98 ms · Polars 12.4 ms · ab951ac2026-10-10 11:52 · busy machine · neo 2.77 ms · Polars 10.7 ms · afeb06c2026-10-10 12:00 · neo 2.72 ms · Polars 11.8 ms · afeb06c2026-10-11 10:29 · neo 2.91 ms · Polars 13.7 ms · f1d835a2026-10-11 16:03 · neo 2.75 ms · Polars 12.5 ms · f1d835a2026-10-11 17:08 · neo 2.74 ms · Polars 11.7 ms · f1d835a2026-10-11 17:31 · neo 2.75 ms · Polars 12.1 ms · f1d835a2026-10-11 21:01 · neo 2.69 ms · Polars 11.8 ms · f1d835a2026-10-11 21:13 · neo 2.76 ms · Polars 12.2 ms · f1d835a2026-10-11 21:23 · neo 2.72 ms · Polars 12.2 ms · f1d835a

sum by region

0.051 → 0.020 ms

2.5× quicker over 11 runs, 10-08 to 10-11 · Polars 1.55 ms at the last

neo 0.020Polars 1.5510-0810-112026-10-08 19:52 · busy machine · neo 0.051 ms · Polars 2.04 ms · c138ccb2026-10-08 20:08 · busy machine · neo 0.035 ms · Polars 1.55 ms · ab951ac2026-10-10 11:52 · busy machine · neo 0.032 ms · Polars 1.49 ms · afeb06c2026-10-10 12:00 · neo 0.032 ms · Polars 1.61 ms · afeb06c2026-10-11 10:29 · neo 0.035 ms · Polars 1.61 ms · f1d835a2026-10-11 16:03 · neo 0.024 ms · Polars 1.60 ms · f1d835a2026-10-11 17:08 · neo 0.019 ms · Polars 1.41 ms · f1d835a2026-10-11 17:31 · neo 0.019 ms · Polars 1.57 ms · f1d835a2026-10-11 21:01 · neo 0.020 ms · Polars 1.70 ms · f1d835a2026-10-11 21:13 · neo 0.020 ms · Polars 1.52 ms · f1d835a2026-10-11 21:23 · neo 0.020 ms · Polars 1.55 ms · f1d835a
Every run as a table

load the CSV · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy10.417.265.1256412
2026-10-08 20:08 · busy8.7815.657.3241426
2026-10-10 11:52 · busy8.3115.649.2227389
2026-10-10 12:008.8915.550.0240343
2026-10-11 10:294.3116.654.2255412
2026-10-11 16:032.9516.949.0241383
2026-10-11 17:082.8915.651.3234378
2026-10-11 17:312.9215.351.0237375
2026-10-11 21:012.8315.153.3227356
2026-10-11 21:132.9314.851.6234354
2026-10-11 21:232.7715.251.8229359

filter, count · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy0.0210.1980.6260.33743.7
2026-10-08 20:08 · busy0.0140.2080.6220.33340.9
2026-10-10 11:52 · busy0.0140.2190.5680.32735.3
2026-10-10 12:000.0140.1910.5720.33341.4
2026-10-11 10:290.0140.2010.6440.33143.1
2026-10-11 16:030.0140.1770.5660.31539.1
2026-10-11 17:080.0140.1710.5530.32835.0
2026-10-11 17:310.0140.1780.5820.34539.1
2026-10-11 21:010.0170.1870.5340.32837.6
2026-10-11 21:130.0170.1780.5540.32434.5
2026-10-11 21:230.0180.1790.6020.32836.9

filter into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy1.401.0843.812.724.3
2026-10-08 20:08 · busy0.4151.0641.612.524.9
2026-10-10 11:52 · busy0.3190.93840.112.022.1
2026-10-10 12:000.2951.0940.211.924.1
2026-10-11 10:290.4901.1443.312.924.5
2026-10-11 16:030.3831.0640.211.925.6
2026-10-11 17:080.3331.0940.411.923.3
2026-10-11 17:310.3161.0642.212.122.5
2026-10-11 21:010.3640.90840.211.724.2
2026-10-11 21:130.3190.99939.811.720.7
2026-10-11 21:230.3800.88940.311.822.0

sort, as a permutation · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy1.057.34—71.7—
2026-10-08 20:08 · busy1.077.27—69.8—
2026-10-10 11:52 · busy1.056.35—65.2—
2026-10-10 12:001.066.62—65.2—
2026-10-11 10:291.067.23—71.3—
2026-10-11 16:031.037.11—65.6—
2026-10-11 17:081.026.80—66.6—
2026-10-11 17:311.037.18—66.4—
2026-10-11 21:011.046.58—64.1—
2026-10-11 21:131.066.83—64.7—
2026-10-11 21:231.036.68—64.8—

sort into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy3.0713.727.6142135
2026-10-08 20:08 · busy2.9812.425.0126124
2026-10-10 11:52 · busy2.7710.723.2113123
2026-10-10 12:002.7211.824.8115119
2026-10-11 10:292.9113.727.6129134
2026-10-11 16:032.7512.524.2119117
2026-10-11 17:082.7411.724.8112112
2026-10-11 17:312.7512.125.5114116
2026-10-11 21:012.6911.823.2111116
2026-10-11 21:132.7612.223.9109121
2026-10-11 21:232.7212.223.4110122

sum by region · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:52 · busy0.0512.042.7513.253.6
2026-10-08 20:08 · busy0.0351.552.5212.646.5
2026-10-10 11:52 · busy0.0321.492.2812.445.0
2026-10-10 12:000.0321.612.3112.442.1
2026-10-11 10:290.0351.612.4013.545.2
2026-10-11 16:030.0241.602.2812.343.0
2026-10-11 17:080.0191.412.2912.840.2
2026-10-11 17:310.0191.572.3012.442.1
2026-10-11 21:010.0201.702.3012.240.4
2026-10-11 21:130.0201.522.2712.040.9
2026-10-11 21:230.0201.552.2412.239.0

Against the field, 10,000,000 rows

load the CSV

78.8 → 21.7 ms

3.6× quicker over 11 runs, 10-08 to 10-11 · Polars 114 ms at the last

neo 21.7Polars 11410-0810-112026-10-08 19:53 · busy machine · neo 78.8 ms · Polars 348 ms · c138ccb2026-10-08 20:09 · busy machine · neo 90.7 ms · Polars 130 ms · ab951ac2026-10-10 11:52 · busy machine · neo 85.8 ms · Polars 120 ms · afeb06c2026-10-10 12:01 · neo 81.8 ms · Polars 119 ms · afeb06c2026-10-11 10:30 · neo 34.8 ms · Polars 129 ms · f1d835a2026-10-11 16:04 · neo 23.6 ms · Polars 128 ms · f1d835a2026-10-11 17:09 · neo 23.9 ms · Polars 132 ms · f1d835a2026-10-11 17:31 · neo 24.1 ms · Polars 130 ms · f1d835a2026-10-11 21:02 · neo 21.9 ms · Polars 117 ms · f1d835a2026-10-11 21:14 · neo 22.3 ms · Polars 114 ms · f1d835a2026-10-11 21:24 · neo 21.7 ms · Polars 114 ms · f1d835a

filter, count

0.341 → 0.317 ms

1.1× quicker over 11 runs, 10-08 to 10-11 · Polars 0.621 ms at the last

neo 0.317Polars 0.62110-0810-112026-10-08 19:53 · busy machine · neo 0.341 ms · Polars 1.29 ms · c138ccb2026-10-08 20:09 · busy machine · neo 0.324 ms · Polars 0.678 ms · ab951ac2026-10-10 11:52 · busy machine · neo 0.305 ms · Polars 0.616 ms · afeb06c2026-10-10 12:01 · neo 0.315 ms · Polars 0.631 ms · afeb06c2026-10-11 10:30 · neo 0.322 ms · Polars 0.621 ms · f1d835a2026-10-11 16:04 · neo 0.317 ms · Polars 0.617 ms · f1d835a2026-10-11 17:09 · neo 0.322 ms · Polars 0.626 ms · f1d835a2026-10-11 17:31 · neo 0.315 ms · Polars 0.619 ms · f1d835a2026-10-11 21:02 · neo 0.313 ms · Polars 0.596 ms · f1d835a2026-10-11 21:14 · neo 0.312 ms · Polars 0.636 ms · f1d835a2026-10-11 21:24 · neo 0.317 ms · Polars 0.621 ms · f1d835a

filter into a new table

4.04 → 3.40 ms

1.2× quicker over 11 runs, 10-08 to 10-11 · Polars 9.13 ms at the last

neo 3.40Polars 9.1310-0810-112026-10-08 19:53 · busy machine · neo 4.04 ms · Polars 17.4 ms · c138ccb2026-10-08 20:09 · busy machine · neo 3.39 ms · Polars 8.57 ms · ab951ac2026-10-10 11:52 · busy machine · neo 3.42 ms · Polars 8.91 ms · afeb06c2026-10-10 12:01 · neo 3.43 ms · Polars 7.63 ms · afeb06c2026-10-11 10:30 · neo 3.55 ms · Polars 7.66 ms · f1d835a2026-10-11 16:04 · neo 3.50 ms · Polars 7.92 ms · f1d835a2026-10-11 17:09 · neo 3.43 ms · Polars 8.73 ms · f1d835a2026-10-11 17:31 · neo 3.42 ms · Polars 6.85 ms · f1d835a2026-10-11 21:02 · neo 3.66 ms · Polars 7.39 ms · f1d835a2026-10-11 21:14 · neo 3.45 ms · Polars 7.21 ms · f1d835a2026-10-11 21:24 · neo 3.40 ms · Polars 9.13 ms · f1d835a

sort, as a permutation

12.9 → 9.39 ms

1.4× quicker over 11 runs, 10-08 to 10-11 · Polars 71.4 ms at the last

neo 9.39Polars 71.410-0810-112026-10-08 19:53 · busy machine · neo 12.9 ms · Polars 153 ms · c138ccb2026-10-08 20:09 · busy machine · neo 9.69 ms · Polars 99.4 ms · ab951ac2026-10-10 11:52 · busy machine · neo 9.19 ms · Polars 69.1 ms · afeb06c2026-10-10 12:01 · neo 9.39 ms · Polars 70.3 ms · afeb06c2026-10-11 10:30 · neo 9.88 ms · Polars 75.6 ms · f1d835a2026-10-11 16:04 · neo 9.66 ms · Polars 73.2 ms · f1d835a2026-10-11 17:09 · neo 9.35 ms · Polars 69.7 ms · f1d835a2026-10-11 17:31 · neo 9.43 ms · Polars 69.8 ms · f1d835a2026-10-11 21:02 · neo 9.19 ms · Polars 72.7 ms · f1d835a2026-10-11 21:14 · neo 9.31 ms · Polars 71.6 ms · f1d835a2026-10-11 21:24 · neo 9.39 ms · Polars 71.4 ms · f1d835a

sort into a new table

68.3 → 62.6 ms

1.1× quicker over 11 runs, 10-08 to 10-11 · Polars 139 ms at the last

neo 62.6Polars 13910-0810-112026-10-08 19:53 · busy machine · neo 68.3 ms · Polars 812 ms · c138ccb2026-10-08 20:09 · busy machine · neo 64.0 ms · Polars 174 ms · ab951ac2026-10-10 11:52 · busy machine · neo 63.0 ms · Polars 132 ms · afeb06c2026-10-10 12:01 · neo 63.1 ms · Polars 122 ms · afeb06c2026-10-11 10:30 · neo 65.6 ms · Polars 137 ms · f1d835a2026-10-11 16:04 · neo 64.2 ms · Polars 132 ms · f1d835a2026-10-11 17:09 · neo 63.4 ms · Polars 125 ms · f1d835a2026-10-11 17:31 · neo 63.2 ms · Polars 125 ms · f1d835a2026-10-11 21:02 · neo 62.4 ms · Polars 137 ms · f1d835a2026-10-11 21:14 · neo 62.3 ms · Polars 145 ms · f1d835a2026-10-11 21:24 · neo 62.6 ms · Polars 139 ms · f1d835a

sum by region

0.490 → 0.401 ms

1.2× quicker over 11 runs, 10-08 to 10-11 · Polars 6.03 ms at the last

neo 0.401Polars 6.0310-0810-112026-10-08 19:53 · busy machine · neo 0.490 ms · Polars 106 ms · c138ccb2026-10-08 20:09 · busy machine · neo 0.481 ms · Polars 10.7 ms · ab951ac2026-10-10 11:52 · busy machine · neo 0.474 ms · Polars 6.69 ms · afeb06c2026-10-10 12:01 · neo 0.482 ms · Polars 6.83 ms · afeb06c2026-10-11 10:30 · neo 0.501 ms · Polars 6.34 ms · f1d835a2026-10-11 16:04 · neo 0.476 ms · Polars 6.04 ms · f1d835a2026-10-11 17:09 · neo 0.468 ms · Polars 6.26 ms · f1d835a2026-10-11 17:31 · neo 0.475 ms · Polars 6.02 ms · f1d835a2026-10-11 21:02 · neo 0.465 ms · Polars 5.95 ms · f1d835a2026-10-11 21:14 · neo 0.466 ms · Polars 5.60 ms · f1d835a2026-10-11 21:24 · neo 0.401 ms · Polars 6.03 ms · f1d835a
Every run as a table

load the CSV · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy78.83481,4902,6752,651
2026-10-08 20:09 · busy90.71303922,5222,970
2026-10-10 11:52 · busy85.81201952,3651,327
2026-10-10 12:0181.81192042,4201,504
2026-10-11 10:3034.81292152,5661,420
2026-10-11 16:0423.61282092,3761,515
2026-10-11 17:0923.91322202,4221,387
2026-10-11 17:3124.11301992,4651,541
2026-10-11 21:0221.91172002,4281,372
2026-10-11 21:1422.31142142,3351,472
2026-10-11 21:2421.71142132,3431,450

filter, count · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy0.3411.293.833.8979.5
2026-10-08 20:09 · busy0.3240.6784.123.7268.8
2026-10-10 11:52 · busy0.3050.6162.193.0842.5
2026-10-10 12:010.3150.6312.203.0842.3
2026-10-11 10:300.3220.6212.323.1847.1
2026-10-11 16:040.3170.6172.193.1046.6
2026-10-11 17:090.3220.6262.213.0840.6
2026-10-11 17:310.3150.6192.203.1545.1
2026-10-11 21:020.3130.5962.093.0642.5
2026-10-11 21:140.3120.6362.193.0641.4
2026-10-11 21:240.3170.6212.133.1239.3

filter into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy4.0417.4948155114
2026-10-08 20:09 · busy3.398.57485154102
2026-10-10 11:52 · busy3.428.9124614069.1
2026-10-10 12:013.437.6326413665.8
2026-10-11 10:303.557.6629915278.9
2026-10-11 16:043.507.9229314069.2
2026-10-11 17:093.438.7327413975.9
2026-10-11 17:313.426.8527614164.4
2026-10-11 21:023.667.3921614261.6
2026-10-11 21:143.457.2123414163.0
2026-10-11 21:243.409.1332813965.1

sort, as a permutation · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy12.9153—945—
2026-10-08 20:09 · busy9.6999.4—870—
2026-10-10 11:52 · busy9.1969.1—809—
2026-10-10 12:019.3970.3—804—
2026-10-11 10:309.8875.6—873—
2026-10-11 16:049.6673.2—808—
2026-10-11 17:099.3569.7—813—
2026-10-11 17:319.4369.8—837—
2026-10-11 21:029.1972.7—794—
2026-10-11 21:149.3171.6—787—
2026-10-11 21:249.3971.4—798—

sort into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy68.38121,0152,809765
2026-10-08 20:09 · busy64.01742082,028896
2026-10-10 11:52 · busy63.01321711,928469
2026-10-10 12:0163.11221901,961475
2026-10-11 10:3065.61372172,176522
2026-10-11 16:0464.21321882,056451
2026-10-11 17:0963.41251761,960504
2026-10-11 17:3163.21251882,040484
2026-10-11 21:0262.41371891,912459
2026-10-11 21:1462.31451791,900467
2026-10-11 21:2462.61391881,913469

sum by region · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 19:53 · busy0.49010630.4179128
2026-10-08 20:09 · busy0.48110.713.7157112
2026-10-10 11:52 · busy0.4746.699.1813769.7
2026-10-10 12:010.4826.839.2414070.1
2026-10-11 10:300.5016.349.4315282.1
2026-10-11 16:040.4766.048.9513964.7
2026-10-11 17:090.4686.269.0413972.7
2026-10-11 17:310.4756.029.1714076.2
2026-10-11 21:020.4655.959.1114163.6
2026-10-11 21:140.4665.608.9413862.3
2026-10-11 21:240.4016.038.9614266.1

Against the field, 100,000,000 rows

load the CSV

1,465 → 249 ms

5.9× quicker over 10 runs, 10-08 to 10-11 · Polars 1,186 ms at the last

neo 249Polars 1,18610-0810-112026-10-08 20:16 · busy machine · neo 1,465 ms · Polars 1,715 ms · ab951ac2026-10-10 11:58 · busy machine · neo 909 ms · Polars 1,203 ms · afeb06c2026-10-10 12:08 · neo 861 ms · Polars 1,227 ms · afeb06c2026-10-11 10:38 · neo 409 ms · Polars 1,340 ms · f1d835a2026-10-11 16:09 · neo 299 ms · Polars 1,210 ms · f1d835a2026-10-11 17:15 · neo 285 ms · Polars 1,203 ms · f1d835a2026-10-11 17:38 · neo 279 ms · Polars 1,206 ms · f1d835a2026-10-11 21:07 · neo 244 ms · Polars 1,165 ms · f1d835a2026-10-11 21:20 · neo 244 ms · Polars 1,132 ms · f1d835a2026-10-11 21:29 · neo 249 ms · Polars 1,186 ms · f1d835a

filter, count

3.52 → 2.98 ms

1.2× quicker over 10 runs, 10-08 to 10-11 · Polars 4.45 ms at the last

neo 2.98Polars 4.4510-0810-112026-10-08 20:16 · busy machine · neo 3.52 ms · Polars 4.67 ms · ab951ac2026-10-10 11:58 · busy machine · neo 3.01 ms · Polars 3.95 ms · afeb06c2026-10-10 12:08 · neo 2.89 ms · Polars 4.31 ms · afeb06c2026-10-11 10:38 · neo 3.09 ms · Polars 4.48 ms · f1d835a2026-10-11 16:09 · neo 3.13 ms · Polars 4.43 ms · f1d835a2026-10-11 17:15 · neo 2.91 ms · Polars 4.15 ms · f1d835a2026-10-11 17:38 · neo 2.91 ms · Polars 4.27 ms · f1d835a2026-10-11 21:07 · neo 2.92 ms · Polars 4.12 ms · f1d835a2026-10-11 21:20 · neo 3.00 ms · Polars 4.34 ms · f1d835a2026-10-11 21:29 · neo 2.98 ms · Polars 4.45 ms · f1d835a

filter into a new table

48.1 → 34.3 ms

1.4× quicker over 10 runs, 10-08 to 10-11 · Polars 111 ms at the last

neo 34.3Polars 11110-0810-112026-10-08 20:16 · busy machine · neo 48.1 ms · Polars 151 ms · ab951ac2026-10-10 11:58 · busy machine · neo 35.4 ms · Polars 136 ms · afeb06c2026-10-10 12:08 · neo 34.3 ms · Polars 125 ms · afeb06c2026-10-11 10:38 · neo 36.5 ms · Polars 137 ms · f1d835a2026-10-11 16:09 · neo 35.6 ms · Polars 100.0 ms · f1d835a2026-10-11 17:15 · neo 34.7 ms · Polars 125 ms · f1d835a2026-10-11 17:38 · neo 34.4 ms · Polars 116 ms · f1d835a2026-10-11 21:07 · neo 34.2 ms · Polars 119 ms · f1d835a2026-10-11 21:20 · neo 33.9 ms · Polars 113 ms · f1d835a2026-10-11 21:29 · neo 34.3 ms · Polars 111 ms · f1d835a

sort, as a permutation

150 → 99.6 ms

1.5× quicker over 10 runs, 10-08 to 10-11 · Polars 1,031 ms at the last

neo 99.6Polars 1,03110-0810-112026-10-08 20:16 · busy machine · neo 150 ms · Polars 1,560 ms · ab951ac2026-10-10 11:58 · busy machine · neo 98.9 ms · Polars 1,000 ms · afeb06c2026-10-10 12:08 · neo 100 ms · Polars 1,107 ms · afeb06c2026-10-11 10:38 · neo 104 ms · Polars 1,144 ms · f1d835a2026-10-11 16:09 · neo 102 ms · Polars 1,055 ms · f1d835a2026-10-11 17:15 · neo 101 ms · Polars 1,055 ms · f1d835a2026-10-11 17:38 · neo 99.9 ms · Polars 1,083 ms · f1d835a2026-10-11 21:07 · neo 99.1 ms · Polars 983 ms · f1d835a2026-10-11 21:20 · neo 99.4 ms · Polars 970 ms · f1d835a2026-10-11 21:29 · neo 99.6 ms · Polars 1,031 ms · f1d835a

sort into a new table

1,483 → 744 ms

2.0× quicker over 10 runs, 10-08 to 10-11 · Polars 1,542 ms at the last

neo 744Polars 1,54210-0810-112026-10-08 20:16 · busy machine · neo 1,483 ms · Polars 2,490 ms · ab951ac2026-10-10 11:58 · busy machine · neo 752 ms · Polars 1,716 ms · afeb06c2026-10-10 12:08 · neo 750 ms · Polars 1,677 ms · afeb06c2026-10-11 10:38 · neo 771 ms · Polars 1,833 ms · f1d835a2026-10-11 16:09 · neo 759 ms · Polars 1,693 ms · f1d835a2026-10-11 17:15 · neo 750 ms · Polars 1,658 ms · f1d835a2026-10-11 17:38 · neo 747 ms · Polars 1,614 ms · f1d835a2026-10-11 21:07 · neo 745 ms · Polars 1,547 ms · f1d835a2026-10-11 21:20 · neo 744 ms · Polars 1,522 ms · f1d835a2026-10-11 21:29 · neo 744 ms · Polars 1,542 ms · f1d835a

sum by region

5.41 → 4.11 ms

1.3× quicker over 10 runs, 10-08 to 10-11 · Polars 52.8 ms at the last

neo 4.11Polars 52.810-0810-112026-10-08 20:16 · busy machine · neo 5.41 ms · Polars 85.8 ms · ab951ac2026-10-10 11:58 · busy machine · neo 5.06 ms · Polars 55.7 ms · afeb06c2026-10-10 12:08 · neo 5.08 ms · Polars 53.7 ms · afeb06c2026-10-11 10:38 · neo 4.94 ms · Polars 56.8 ms · f1d835a2026-10-11 16:09 · neo 4.24 ms · Polars 51.3 ms · f1d835a2026-10-11 17:15 · neo 4.21 ms · Polars 53.4 ms · f1d835a2026-10-11 17:38 · neo 4.07 ms · Polars 52.5 ms · f1d835a2026-10-11 21:07 · neo 4.08 ms · Polars 52.1 ms · f1d835a2026-10-11 21:20 · neo 4.10 ms · Polars 52.7 ms · f1d835a2026-10-11 21:29 · neo 4.11 ms · Polars 52.8 ms · f1d835a
Every run as a table

load the CSV · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy1,4651,7153,97633,84429,040
2026-10-10 11:58 · busy9091,2032,31526,50116,694
2026-10-10 12:088611,2272,45227,35713,784
2026-10-11 10:384091,3402,63828,52714,573
2026-10-11 16:092991,2102,28828,08114,524
2026-10-11 17:152851,2032,37526,60014,249
2026-10-11 17:382791,2062,35626,81716,094
2026-10-11 21:072441,1652,37426,86815,837
2026-10-11 21:202441,1322,38626,44415,666
2026-10-11 21:292491,1862,38827,00915,900

filter, count · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy3.524.6721.739.1167
2026-10-10 11:58 · busy3.013.9518.730.6137
2026-10-10 12:082.894.3119.130.6134
2026-10-11 10:383.094.4819.731.4136
2026-10-11 16:093.134.4318.930.4124
2026-10-11 17:152.914.1518.930.6132
2026-10-11 17:382.914.2718.430.4132
2026-10-11 21:072.924.1218.230.4129
2026-10-11 21:203.004.3418.130.4130
2026-10-11 21:292.984.4518.430.4131

filter into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy48.11512,4381,5781,361
2026-10-10 11:58 · busy35.41361,6801,504691
2026-10-10 12:0834.31251,6771,475716
2026-10-11 10:3836.51372,1921,615719
2026-10-11 16:0935.6100.01,5331,531626
2026-10-11 17:1534.71251,8311,549711
2026-10-11 17:3834.41161,6241,431708
2026-10-11 21:0734.21191,6701,459696
2026-10-11 21:2033.91131,7211,474687
2026-10-11 21:2934.31111,7531,541693

sort, as a permutation · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy1501,560—10,093—
2026-10-10 11:58 · busy98.91,000—9,706—
2026-10-10 12:081001,107—10,051—
2026-10-11 10:381041,144—10,835—
2026-10-11 16:091021,055—9,821—
2026-10-11 17:151011,055—9,929—
2026-10-11 17:3899.91,083—9,866—
2026-10-11 21:0799.1983—9,615—
2026-10-11 21:2099.4970—9,735—
2026-10-11 21:2999.61,031—9,765—

sort into a new table · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy1,4832,4904,45324,6798,585
2026-10-10 11:58 · busy7521,7163,05923,3945,289
2026-10-10 12:087501,6772,88923,5625,211
2026-10-11 10:387711,8333,59525,4185,392
2026-10-11 16:097591,6932,92923,4514,653
2026-10-11 17:157501,6582,93023,5545,383
2026-10-11 17:387471,6142,64723,1795,173
2026-10-11 21:077451,5472,70222,7064,830
2026-10-11 21:207441,5222,92923,0924,834
2026-10-11 21:297441,5422,87523,2774,970

sum by region · ms

runneoPolarsDuckDBpandasSpark
2026-10-08 20:16 · busy5.4185.899.81,452803
2026-10-10 11:58 · busy5.0655.781.31,401477
2026-10-10 12:085.0853.782.81,415454
2026-10-11 10:384.9456.885.41,530473
2026-10-11 16:094.2451.380.71,419401
2026-10-11 17:154.2153.482.31,444466
2026-10-11 17:384.0752.583.51,403453
2026-10-11 21:074.0852.181.11,396414
2026-10-11 21:204.1052.782.11,399415
2026-10-11 21:294.1152.884.41,398432

Against the ports: Go, Rust, Swift, Zig

The four ports were timed together on one day (2026-10-12); only the cold load was run twice, so it is the one kernel of theirs with a line. Measured once and so not drawn: load, filter, count, sort, as a permutation, sort into a new table, sum by region — the Evals tab has those. The load in process is neo's against the Rust port's, the one port bench_load_profile.sh runs, which it has done since 2026-10-10.

load, the parse loop in process, 1M rows

5.82 → 2.79 ms

2.1× quicker over 6 runs, 10-10 to 10-11 · Rust 3.11 ms at the last

neo 2.79Rust 3.1110-1010-112026-10-10 16:21 · busy machine · neo 5.82 ms · Rust 3.06 ms · e3df52c2026-10-10 17:35 · neo 5.09 ms · Rust 2.98 ms · 6acac782026-10-10 18:11 · busy machine · neo 5.45 ms · Rust 2.95 ms · 6acac782026-10-10 21:53 · neo 4.87 ms · Rust 3.22 ms · 3f8b3b42026-10-11 08:14 · busy machine · neo 3.58 ms · Rust 3.09 ms · dba1fdf2026-10-11 14:11 · neo 2.79 ms · Rust 3.11 ms · f1d835a

cold load, a fresh process, 1M rows

8.96 → 5.96 ms

1.5× quicker over 2 runs, 10-12 to 10-12 · Zig 4.32 ms at the last

neo 5.96Zig 4.3210-1210-122026-10-12 06:38 · neo 8.96 ms · Zig 4.45 ms · 369589d2026-10-12 07:17 · neo 5.96 ms · Zig 4.32 ms · 369589d

load, the parse loop in process, 10M rows

44.5 → 21.1 ms

2.1× quicker over 6 runs, 10-10 to 10-11 · Rust 32.6 ms at the last

neo 21.1Rust 32.610-1010-112026-10-10 16:21 · busy machine · neo 44.5 ms · Rust 34.4 ms · e3df52c2026-10-10 17:35 · busy machine · neo 41.6 ms · Rust 38.0 ms · 6acac782026-10-10 18:11 · busy machine · neo 44.1 ms · Rust 35.6 ms · 6acac782026-10-10 21:53 · neo 36.6 ms · Rust 36.3 ms · 3f8b3b42026-10-11 08:14 · busy machine · neo 28.9 ms · Rust 34.5 ms · dba1fdf2026-10-11 14:11 · busy machine · neo 21.1 ms · Rust 32.6 ms · f1d835a

cold load, a fresh process, 10M rows

45.0 → 43.3 ms

level over 2 runs, 10-12 to 10-12 · Zig 38.8 ms at the last

neo 43.3Zig 38.810-1210-122026-10-12 06:44 · neo 45.0 ms · Zig 39.8 ms · 369589d2026-10-12 07:18 · neo 43.3 ms · Zig 38.8 ms · 369589d

load, the parse loop in process, 100M rows

632 → 500 ms

1.3× quicker over 2 runs, 10-10 to 10-10 · Rust 298 ms at the last

neo 500Rust 29810-1010-102026-10-10 16:21 · busy machine · neo 632 ms · Rust 367 ms · e3df52c2026-10-10 21:54 · busy machine · neo 500 ms · Rust 298 ms · 3f8b3b4

cold load, a fresh process, 100M rows

420 → 426 ms

level over 2 runs, 10-12 to 10-12 · Zig 454 ms at the last

neo 426Zig 45410-1210-122026-10-12 07:12 · neo 420 ms · Zig 448 ms · 369589d2026-10-12 07:19 · neo 426 ms · Zig 454 ms · 369589d
Every run as a table

load, the parse loop in process, 1M rows · ms

runneoGoRustSwiftZig
2026-10-10 16:21 · busy5.82—3.06——
2026-10-10 17:355.09—2.98——
2026-10-10 18:11 · busy5.45—2.95——
2026-10-10 21:534.87—3.22——
2026-10-11 08:14 · busy3.58—3.09——
2026-10-11 14:112.79—3.11——

cold load, a fresh process, 1M rows · ms

runneoGoRustSwiftZig
2026-10-12 06:388.9610.47.296.694.45
2026-10-12 07:175.969.976.266.544.32

load, the parse loop in process, 10M rows · ms

runneoGoRustSwiftZig
2026-10-10 16:21 · busy44.5—34.4——
2026-10-10 17:35 · busy41.6—38.0——
2026-10-10 18:11 · busy44.1—35.6——
2026-10-10 21:5336.6—36.3——
2026-10-11 08:14 · busy28.9—34.5——
2026-10-11 14:11 · busy21.1—32.6——

cold load, a fresh process, 10M rows · ms

runneoGoRustSwiftZig
2026-10-12 06:4445.079.958.359.739.8
2026-10-12 07:1843.377.356.555.438.8

load, the parse loop in process, 100M rows · ms

runneoGoRustSwiftZig
2026-10-10 16:21 · busy632—367——
2026-10-10 21:54 · busy500—298——

cold load, a fresh process, 100M rows · ms

runneoGoRustSwiftZig
2026-10-12 07:12420726504482448
2026-10-12 07:19426734542496454

On public data, read as text

worldcitiespop, first load

29.2 → 23.8 ms

1.2× quicker over 4 runs, 10-11 to 10-11 · Arrow 26.3 ms at the last

neo 23.8Arrow 26.310-1110-112026-10-11 09:02 · neo 29.2 ms · Arrow 29.8 ms · f1d835a2026-10-11 09:09 · busy machine · neo 29.8 ms · Arrow 29.8 ms · f1d835a2026-10-11 09:46 · neo 25.6 ms · Arrow 29.6 ms · f1d835a2026-10-11 16:12 · neo 23.8 ms · Arrow 26.3 ms · f1d835a

worldcitiespop, loads after it

19.3 → 11.4 ms

1.7× quicker over 4 runs, 10-11 to 10-11 · Arrow 23.0 ms at the last

neo 11.4Arrow 23.010-1110-112026-10-11 09:02 · neo 19.3 ms · Arrow 26.6 ms · f1d835a2026-10-11 09:09 · busy machine · neo 19.5 ms · Arrow 26.5 ms · f1d835a2026-10-11 09:46 · neo 12.6 ms · Arrow 26.8 ms · f1d835a2026-10-11 16:12 · neo 11.4 ms · Arrow 23.0 ms · f1d835a

NYC taxi · 1M, first load

85.3 → 72.9 ms

1.2× quicker over 5 runs, 10-11 to 10-11 · Arrow 96.1 ms at the last

neo 72.9Arrow 96.110-1110-112026-10-11 09:04 · neo 85.3 ms · Arrow 103 ms · f1d835a2026-10-11 09:11 · neo 89.5 ms · Arrow 104 ms · f1d835a2026-10-11 09:26 · neo 89.6 ms · Arrow 104 ms · f1d835a2026-10-11 09:50 · neo 78.1 ms · Arrow 104 ms · f1d835a2026-10-11 16:15 · neo 72.9 ms · Arrow 96.1 ms · f1d835a

NYC taxi · 1M, loads after it

71.6 → 52.9 ms

1.4× quicker over 5 runs, 10-11 to 10-11 · Arrow 90.7 ms at the last

neo 52.9Arrow 90.710-1110-112026-10-11 09:04 · neo 71.6 ms · Arrow 99.0 ms · f1d835a2026-10-11 09:11 · neo 73.0 ms · Arrow 98.4 ms · f1d835a2026-10-11 09:26 · neo 74.0 ms · Arrow 98.0 ms · f1d835a2026-10-11 09:50 · neo 57.2 ms · Arrow 98.3 ms · f1d835a2026-10-11 16:15 · neo 52.9 ms · Arrow 90.7 ms · f1d835a

NYC taxi · 10M, first load

747 → 448 ms

1.7× quicker over 3 runs, 10-11 to 10-11 · Arrow 954 ms at the last

neo 448Arrow 95410-1110-112026-10-11 09:16 · busy machine · neo 747 ms · Arrow 1,011 ms · f1d835a2026-10-11 10:07 · neo 490 ms · Arrow 1,021 ms · f1d835a2026-10-11 16:34 · neo 448 ms · Arrow 954 ms · f1d835a

NYC taxi · 10M, loads after it

710 → 418 ms

1.7× quicker over 3 runs, 10-11 to 10-11 · Arrow 959 ms at the last

neo 418Arrow 95910-1110-112026-10-11 09:16 · busy machine · neo 710 ms · Arrow 1,011 ms · f1d835a2026-10-11 10:07 · neo 465 ms · Arrow 1,018 ms · f1d835a2026-10-11 16:34 · neo 418 ms · Arrow 959 ms · f1d835a

ClickBench · 1M, first load

185 → 126 ms

1.5× quicker over 6 runs, 10-11 to 10-11 · Polars 274 ms at the last

neo 126Polars 27410-1110-112026-10-11 09:06 · busy machine · neo 185 ms · Polars 291 ms · f1d835a2026-10-11 09:13 · busy machine · neo 192 ms · Polars 295 ms · f1d835a2026-10-11 09:30 · neo 206 ms · Polars 301 ms · f1d835a2026-10-11 09:52 · neo 141 ms · Polars 294 ms · f1d835a2026-10-11 10:27 · neo 145 ms · Polars 299 ms · f1d835a2026-10-11 16:21 · neo 126 ms · Polars 274 ms · f1d835a

ClickBench · 1M, loads after it

164 → 96.0 ms

1.7× quicker over 6 runs, 10-11 to 10-11 · Polars 189 ms at the last

neo 96.0Polars 18910-1110-112026-10-11 09:06 · busy machine · neo 164 ms · Polars 206 ms · f1d835a2026-10-11 09:13 · busy machine · neo 166 ms · Polars 203 ms · f1d835a2026-10-11 09:30 · neo 182 ms · Polars 219 ms · f1d835a2026-10-11 09:52 · neo 113 ms · Polars 208 ms · f1d835a2026-10-11 10:27 · neo 115 ms · Polars 216 ms · f1d835a2026-10-11 16:21 · neo 96.0 ms · Polars 189 ms · f1d835a

ClickBench · 10M, first load

2,070 → 1,053 ms

2.0× quicker over 3 runs, 10-11 to 10-11 · Polars 2,814 ms at the last

neo 1,053Polars 2,81410-1110-112026-10-11 09:22 · busy machine · neo 2,070 ms · Polars 3,017 ms · f1d835a2026-10-11 10:19 · neo 1,572 ms · Polars 3,042 ms · f1d835a2026-10-11 16:43 · neo 1,053 ms · Polars 2,814 ms · f1d835a

ClickBench · 10M, loads after it

2,045 → 1,056 ms

1.9× quicker over 3 runs, 10-11 to 10-11 · Polars 2,696 ms at the last

neo 1,056Polars 2,69610-1110-112026-10-11 09:22 · busy machine · neo 2,045 ms · Polars 2,972 ms · f1d835a2026-10-11 10:19 · neo 1,673 ms · Polars 2,980 ms · f1d835a2026-10-11 16:43 · neo 1,056 ms · Polars 2,696 ms · f1d835a
Every run as a table

worldcitiespop, first load · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:0229.229.851.42781,722
2026-10-11 09:09 · busy29.829.852.72801,739
2026-10-11 09:4625.629.649.22801,125
2026-10-11 16:1223.826.347.52521,072

worldcitiespop, loads after it · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:0219.326.642.81021,724
2026-10-11 09:09 · busy19.526.543.499.21,749
2026-10-11 09:4612.626.844.01021,108
2026-10-11 16:1211.423.039.991.81,053

NYC taxi · 1M, first load · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:0485.31031449373,665
2026-10-11 09:1189.51041469083,699
2026-10-11 09:2689.61041469083,696
2026-10-11 09:5078.11041469083,305
2026-10-11 16:1572.996.11428273,151

NYC taxi · 1M, loads after it · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:0471.699.01057253,679
2026-10-11 09:1173.098.41037163,707
2026-10-11 09:2674.098.01097303,658
2026-10-11 09:5057.298.31077403,201
2026-10-11 16:1552.990.795.36613,103

NYC taxi · 10M, first load · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:16 · busy7471,0111,3022,949—
2026-10-11 10:074901,0211,3313,04232,853
2026-10-11 16:344489541,2452,75231,837

NYC taxi · 10M, loads after it · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:16 · busy7101,0111,2672,648—
2026-10-11 10:074651,0181,2682,87932,863
2026-10-11 16:344189591,0982,53931,512

ClickBench · 1M, first load · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:06 · busy185—2911,7586,574
2026-10-11 09:13 · busy1924032951,7426,431
2026-10-11 09:302064133011,8356,517
2026-10-11 09:521414062941,765—
2026-10-11 10:271454022991,7806,527
2026-10-11 16:211263732741,6475,944

ClickBench · 1M, loads after it · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:06 · busy164—2061,5186,505
2026-10-11 09:13 · busy1664052031,5156,421
2026-10-11 09:301824192191,5416,497
2026-10-11 09:521134072081,523—
2026-10-11 10:271154062161,5286,498
2026-10-11 16:2196.03731891,4385,876

ClickBench · 10M, first load · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:22 · busy2,0704,0493,0174,887—
2026-10-11 10:191,5724,1473,0425,589—
2026-10-11 16:431,0533,7522,8144,626—

ClickBench · 10M, loads after it · ms

runneoArrowPolarsDuckDBpandas
2026-10-11 09:22 · busy2,0454,0992,9725,153—
2026-10-11 10:191,6734,1592,9805,640—
2026-10-11 16:431,0563,8292,6964,682—

Measured on Apple M5 Max, 18 cores, 26.4.1. Every point is a run a benchmark script appended to the engine's ledgers; nothing on this page was measured again for it.

All evalsEvery comparisonStart a conversation