欢迎光临
我们一直在努力

分别在windows和wsl中对比测试fractalsort和duckdb、polars的排序速度

1.下载源代码
访问 https://github.com/mikdangana/fractalsort_cpu
点击绿色按钮,选zip
https://github.com/mikdangana/fractalsort_cpu/archive/refs/heads/master.zip
解压到fractalsort_cpu-master2目录
2.安装python环境

python/bin/python -m venv sortbench
source sortbench/bin/activate
pip download duckdb numpy numba polars pandas -d 3145 -i https://mirrors.aliyun.com/pypi/simple
pip install duckdb numpy numba polars pandas -f 3145 –no-index

cd fractalsort_cpu-master2

3.测试结果
3.1 windows

python bench_multicolumn.py
==========================================================================================
Multi-column sort benchmark: sort by first column (uint32)
==========================================================================================
NOTE: chdb not available on this platform — skipped.

rows cols | DuckDB Polars Polars(key) FSC8 FSC8(key) FSF FSF(key) | best
——————————————————————————————————————-
100,000 1 | 12.7M/s 149.1M/s* 93.4M/s 110.1M/s 109.1M/s 138.1M/s 131.8M/s | Polars
100,000 10 | 6.8M/s 75.3M/s 98.0M/s 13.2M/s 109.6M/s* 18.4M/s 84.5M/s | FSC8(key)
100,000 20 | 4.4M/s 56.8M/s 97.3M/s 11.4M/s 109.7M/s 17.3M/s 144.2M/s* | FSF(key)

1,000,000 1 | 15.8M/s 264.2M/s* 243.6M/s 121.5M/s 118.1M/s 220.4M/s 190.6M/s | Polars
1,000,000 10 | 9.2M/s 93.1M/s 233.9M/s 9.5M/s 118.9M/s 64.7M/s 249.5M/s* | FSF(key)
1,000,000 20 | 6.5M/s 33.4M/s 239.2M/s* 7.2M/s 120.2M/s 39.0M/s 233.2M/s | Polars(key)

10,000,000 1 | 13.8M/s 341.5M/s* 129.1M/s 96.1M/s 96.1M/s 64.7M/s 81.9M/s | Polars
10,000,000 10 | 8.1M/s 42.9M/s 131.7M/s 5.8M/s 100.5M/s 55.5M/s 182.1M/s* | FSF(key)
10,000,000 20 | 4.4M/s 20.3M/s 130.2M/s 4.1M/s 100.7M/s 35.6M/s 182.9M/s* | FSF(key)

======================================================================
Speedup vs DuckDB (higher = faster than DuckDB)
======================================================================
rows cols | Polars Polars(key) FSC8 FSC8(key) FSF FSF(key)
———————————————————————————————–
100,000 1 | 11.75x 7.36x 8.67x 8.59x 10.88x 10.38x
100,000 10 | 11.04x 14.35x 1.94x 16.06x 2.69x 12.37x
100,000 20 | 13.06x 22.35x 2.63x 25.22x 3.98x 33.14x

1,000,000 1 | 16.74x 15.44x 7.70x 7.48x 13.97x 12.08x
1,000,000 10 | 10.14x 25.46x 1.04x 12.94x 7.04x 27.15x
1,000,000 20 | 5.14x 36.86x 1.11x 18.53x 6.02x 35.93x

10,000,000 1 | 24.79x 9.37x 6.97x 6.97x 4.70x 5.94x
10,000,000 10 | 5.32x 16.33x 0.73x 12.45x 6.87x 22.58x
10,000,000 20 | 4.60x 29.44x 0.93x 22.78x 8.05x 41.38x

Environment:
Platform: win32
Python: 3.13.2
DuckDB: 1.5.2
Polars: 1.40.0
chdb: not available
Numba: 0.65.1
NumPy: 2.4.5
n_runs: 5

3.2 WSL

python bench_multicolumn.py
==========================================================================================
Multi-column sort benchmark: sort by first column (uint32)
==========================================================================================
NOTE: chdb not available on this platform — skipped.

rows cols | DuckDB Polars Polars(key) FSC8 FSC8(key) FSF FSF(key) | best
——————————————————————————————————————-
100,000 1 | 16.2M/s 54.2M/s 34.2M/s 116.4M/s 113.6M/s 235.6M/s 239.7M/s* | FSF(key)
100,000 10 | 6.9M/s 40.7M/s 38.0M/s 14.2M/s 107.7M/s 15.5M/s 223.8M/s* | FSF(key)
100,000 20 | 4.3M/s 26.1M/s 45.0M/s 11.7M/s 116.1M/s 16.4M/s 233.1M/s* | FSF(key)

1,000,000 1 | 33.7M/s 227.9M/s 205.9M/s 142.5M/s 140.9M/s 380.4M/s* 355.2M/s | FSF
1,000,000 10 | 11.5M/s 73.4M/s 191.1M/s 11.2M/s 140.3M/s 16.4M/s 359.3M/s* | FSF(key)
1,000,000 20 | 7.8M/s 32.8M/s 202.5M/s 9.2M/s 150.0M/s 12.9M/s 373.3M/s* | FSF(key)

10,000,000 1 | 28.5M/s 327.2M/s* 129.5M/s 116.2M/s 116.6M/s 226.7M/s 228.4M/s | Polars
10,000,000 10 | 8.0M/s 43.5M/s 119.1M/s 5.6M/s 107.2M/s 61.3M/s 200.3M/s* | FSF(key)
10,000,000 20 | 4.9M/s 23.6M/s 110.3M/s 4.1M/s 109.8M/s 39.2M/s 205.5M/s* | FSF(key)

======================================================================
Speedup vs DuckDB (higher = faster than DuckDB)
======================================================================
rows cols | Polars Polars(key) FSC8 FSC8(key) FSF FSF(key)
———————————————————————————————–
100,000 1 | 3.35x 2.11x 7.18x 7.01x 14.54x 14.79x
100,000 10 | 5.89x 5.51x 2.06x 15.59x 2.24x 32.41x
100,000 20 | 6.08x 10.50x 2.72x 27.08x 3.82x 54.35x

1,000,000 1 | 6.77x 6.11x 4.23x 4.18x 11.30x 10.55x
1,000,000 10 | 6.41x 16.68x 0.98x 12.25x 1.43x 31.36x
1,000,000 20 | 4.20x 25.92x 1.18x 19.21x 1.65x 47.79x

10,000,000 1 | 11.47x 4.54x 4.07x 4.09x 7.94x 8.00x
10,000,000 10 | 5.46x 14.93x 0.70x 13.44x 7.69x 25.11x
10,000,000 20 | 4.79x 22.38x 0.84x 22.28x 7.96x 41.70x

Environment:
Platform: linux
Python: 3.14.5rc1
DuckDB: 1.5.3
Polars: 1.41.2
chdb: not available
Numba: 0.65.1
NumPy: 2.4.6
n_runs: 5

奇怪的是,除了polars,WSL的数据普遍比windows还好一点。

赞(0)
未经允许不得转载:171主机测评 » 分别在windows和wsl中对比测试fractalsort和duckdb、polars的排序速度
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址