You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf: remove ExecutionCtx from OperationsVTable::scalar_at
The scalar_at hot path was creating and dropping an ExecutionCtx on
every call via LEGACY_SESSION.create_execution_ctx(). Each creation
involves an atomic fetch_add + Arc clone, and each drop an Arc release.
This was called millions of times during query execution (primarily from
PrimitiveTyped::value_unchecked during search_sorted and patches).
Only Patched::scalar_at actually uses ctx (for .execute()), so move the
ctx creation there. All other implementations had unused `_ctx` params.
Profiled with apmc (Apple Silicon hardware performance counters).
ClickBench (Vortex format, Apple Silicon M4 Max, 3 iterations):
Metric Before After Delta
Cycles 1,973.5B 1,942.6B -1.6%
Instructions 4,730.2B 4,722.5B -0.16%
IPC 2.40 2.43 +1.25%
Wall clock 43.09s 41.92s -2.7%
Dispatch stalls 593.7B 573.9B -3.3%
L1D cache misses 80.7B 80.6B ~0%
Branch mispredicts 11.2B 11.2B ~0%
Signed-off-by: Alexander Droste <droste.alexander@gmail.com>
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
impl vortex_array::array::vtable::operations::OperationsVTable<vortex_decimal_byte_parts::DecimalByteParts> for vortex_decimal_byte_parts::DecimalByteParts
0 commit comments