Use CachedId for ArrayExpr scalar function ID#8124
Conversation
Use the shared CachedId static for the "vortex.array" scalar function so its id is interned once instead of on every call, matching the pattern used for regular array ids. Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.022x ➖ datafusion / vortex-file-compressed (1.022x ➖, 0↑ 1↓)
|
File Sizes: PolarSignals ProfilingNo file size changes detected. |
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.023x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.017x ➖, 0↑ 0↓)
datafusion / parquet (1.027x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.961x ➖, 1↑ 0↓)
duckdb / vortex-compact (0.991x ➖, 0↑ 0↓)
duckdb / parquet (1.009x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.010x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.018x ➖, 0↑ 0↓)
datafusion / parquet (1.006x ➖, 1↑ 2↓)
datafusion / arrow (1.035x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.018x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.012x ➖, 1↑ 0↓)
duckdb / parquet (0.993x ➖, 2↑ 0↓)
duckdb / duckdb (1.009x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: FineWeb NVMeNo file size changes detected. |
File Sizes: TPC-H SF=1 on NVMENo file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.006x ➖, 1↑ 1↓)
datafusion / vortex-compact (1.023x ➖, 4↑ 8↓)
datafusion / parquet (1.008x ➖, 2↑ 4↓)
duckdb / vortex-file-compressed (1.006x ➖, 1↑ 2↓)
duckdb / vortex-compact (0.999x ➖, 3↑ 4↓)
duckdb / parquet (1.010x ➖, 0↑ 1↓)
duckdb / duckdb (0.981x ➖, 2↑ 2↓)
Full attributed analysis
|
File Sizes: TPC-DS SF=1 on NVMENo file size changes detected. |
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (1.008x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.001x ➖, 0↑ 0↓)
duckdb / parquet (1.012x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.155x ➖, 0↑ 2↓)
datafusion / vortex-compact (1.110x ➖, 0↑ 2↓)
datafusion / parquet (1.048x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.974x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.951x ➖, 0↑ 0↓)
duckdb / parquet (0.970x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: Statistical and Population GeneticsNo file size changes detected. |
Benchmarks: Random AccessVortex (geomean): 0.963x ➖ unknown / unknown (0.967x ➖, 6↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.991x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.993x ➖, 0↑ 0↓)
datafusion / parquet (1.000x ➖, 0↑ 0↓)
datafusion / arrow (0.990x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.999x ➖, 0↑ 0↓)
duckdb / parquet (0.997x ➖, 0↑ 0↓)
duckdb / duckdb (0.996x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: TPC-H SF=10 on NVMENo file size changes detected. |
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.015x ➖, 0↑ 2↓)
datafusion / parquet (0.986x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.954x ➖, 10↑ 0↓)
duckdb / parquet (1.004x ➖, 0↑ 0↓)
duckdb / duckdb (0.990x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: Clickbench on NVMEFile Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.757x ➖, 10↑ 0↓)
datafusion / vortex-compact (0.960x ➖, 2↑ 3↓)
datafusion / parquet (1.061x ➖, 1↑ 5↓)
duckdb / vortex-file-compressed (0.879x ➖, 1↑ 0↓)
duckdb / vortex-compact (0.898x ➖, 0↑ 0↓)
duckdb / parquet (0.906x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: CompressionVortex (geomean): 1.016x ➖ unknown / unknown (1.028x ➖, 2↑ 18↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.863x ➖, 3↑ 1↓)
datafusion / vortex-compact (0.939x ➖, 0↑ 0↓)
datafusion / parquet (1.085x ➖, 1↑ 4↓)
duckdb / vortex-file-compressed (1.108x ➖, 0↑ 2↓)
duckdb / vortex-compact (1.134x ➖, 0↑ 3↓)
duckdb / parquet (0.889x ➖, 2↑ 0↓)
Full attributed analysis
|
Summary
This PR optimizes the
ArrayExprscalar function ID generation by usingCachedIdfromvortex_session::registryinstead of creating a newScalarFnIdon every call to theid()method.