Kontinuation opened a new pull request, #306: URL: https://github.com/apache/sedona-db/pull/306
This optimization simply hoists per-column arrays in `RasterStructArray`, so that we don't need to extract individual arrays from the struct array each time we construct a `RasterRefImpl` value in `RasterStructArray::get`. We also marked short getters as inline so that the compiler could optimize away the construction of intermediate objects in simple metadata getter functions such as RS_Width. I've benchmarked this using the `rs_width` bench in PR https://github.com/apache/sedona-db/pull/297, the performance improvement is quite significant. Baseline: ``` ./tmp/rs_width_main --bench rs_width --save-baseline rs_width Gnuplot not found, using plotters backend native-rs_width-Array(Raster(64, 64)) time: [7.3810 ms 7.3912 ms 7.4034 ms] Found 8 outliers among 100 measurements (8.00%) 5 (5.00%) high mild 3 (3.00%) high severe ``` This PR: ``` native-rs_width-Array(Raster(64, 64)) time: [474.81 µs 475.81 µs 476.75 µs] change: [-93.593% -93.576% -93.560%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 2 (2.00%) high severe ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
