perf: speed up TryFrom<Scalar> for Primitive#7223
Conversation
Merging this PR will degrade performance by 15.41%
Performance Changes
Comparing Footnotes
|
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.133x ❌ datafusion / vortex-file-compressed (1.133x ❌, 0↑ 3↓)
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.011x ➖, 1↑ 0↓)
datafusion / vortex-compact (1.009x ➖, 0↑ 0↓)
datafusion / parquet (1.009x ➖, 1↑ 1↓)
datafusion / arrow (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.012x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.022x ➖, 0↑ 0↓)
duckdb / parquet (1.032x ➖, 0↑ 4↓)
duckdb / duckdb (1.008x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.956x ➖, 1↑ 1↓)
datafusion / vortex-compact (1.010x ➖, 0↑ 0↓)
datafusion / parquet (0.990x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.031x ➖, 0↑ 2↓)
duckdb / vortex-compact (0.975x ➖, 1↑ 0↓)
duckdb / parquet (0.983x ➖, 0↑ 0↓)
Full attributed analysis
|
| type Error = VortexError; | ||
|
|
||
| fn try_from(value: &Scalar) -> VortexResult<Self> { | ||
| let primitive_scalar = PrimitiveScalar::try_new(value.dtype(), value.value())?; |
There was a problem hiding this comment.
you probs want to change this as well
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.994x ➖, 0↑ 1↓)
datafusion / vortex-compact (0.995x ➖, 0↑ 1↓)
datafusion / parquet (0.987x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.996x ➖, 1↑ 2↓)
duckdb / vortex-compact (0.986x ➖, 2↑ 1↓)
duckdb / parquet (0.998x ➖, 0↑ 1↓)
duckdb / duckdb (0.999x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.993x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.996x ➖, 0↑ 0↓)
datafusion / parquet (0.998x ➖, 0↑ 1↓)
datafusion / arrow (0.975x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.000x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.000x ➖, 0↑ 0↓)
duckdb / parquet (0.993x ➖, 0↑ 0↓)
duckdb / duckdb (1.005x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.099x ➖, 1↑ 5↓)
datafusion / vortex-compact (0.849x ➖, 7↑ 1↓)
datafusion / parquet (1.053x ➖, 4↑ 5↓)
duckdb / vortex-file-compressed (1.044x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.014x ➖, 0↑ 1↓)
duckdb / parquet (1.106x ➖, 0↑ 2↓)
Full attributed analysis
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.961x ➖, 1↑ 0↓)
datafusion / vortex-compact (0.943x ➖, 1↑ 1↓)
datafusion / parquet (1.016x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.006x ➖, 1↑ 1↓)
duckdb / vortex-compact (1.048x ➖, 0↑ 1↓)
duckdb / parquet (1.054x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: Random AccessVortex (geomean): 0.912x ➖ unknown / unknown (0.960x ➖, 13↑ 2↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (1.029x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.971x ➖, 0↑ 0↓)
duckdb / parquet (0.960x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.940x ➖, 7↑ 1↓)
datafusion / parquet (0.925x ➖, 11↑ 0↓)
duckdb / vortex-file-compressed (1.021x ➖, 0↑ 3↓)
duckdb / parquet (0.994x ➖, 0↑ 0↓)
duckdb / duckdb (0.979x ➖, 1↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.153x ➖, 0↑ 4↓)
datafusion / vortex-compact (1.058x ➖, 0↑ 2↓)
datafusion / parquet (1.239x ➖, 0↑ 8↓)
duckdb / vortex-file-compressed (1.002x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.079x ➖, 0↑ 3↓)
duckdb / parquet (1.025x ➖, 0↑ 2↓)
Full attributed analysis
|
Benchmarks: CompressionVortex (geomean): 1.093x ➖ unknown / unknown (1.048x ➖, 9↑ 12↓)
|
Simple