From b03c906b3c3db4613d3b59da9340e899e6420698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Heres?= Date: Sun, 25 Jul 2021 11:28:16 +0200 Subject: [PATCH] Add extra inlining to speed up take (#226) --- src/buffer/mutable.rs | 4 ++++ src/compute/take/generic_binary.rs | 1 - src/compute/take/primitive.rs | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/buffer/mutable.rs b/src/buffer/mutable.rs index 971c276c582..7cf5cdae394 100644 --- a/src/buffer/mutable.rs +++ b/src/buffer/mutable.rs @@ -372,6 +372,8 @@ impl MutableBuffer { /// # Safety /// This method assumes that the iterator's size is correct and is undefined behavior /// to use it on an iterator that reports an incorrect length. + // This inline has been validated to offer 50% improvement in operations like `take`. + #[inline] pub unsafe fn extend_from_trusted_len_iter_unchecked>( &mut self, iterator: I, @@ -461,6 +463,8 @@ impl MutableBuffer { /// # Safety /// This method assumes that the iterator's size is correct and is undefined behavior /// to use it on an iterator that reports an incorrect length. + // This inline has been validated to offer 50% improvement in operations like `take`. + #[inline] pub unsafe fn try_from_trusted_len_iter_unchecked< E, I: Iterator>, diff --git a/src/compute/take/generic_binary.rs b/src/compute/take/generic_binary.rs index 3d418aaeb04..4d9af24bb30 100644 --- a/src/compute/take/generic_binary.rs +++ b/src/compute/take/generic_binary.rs @@ -14,7 +14,6 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. - use crate::{ array::{Array, GenericBinaryArray, Offset, PrimitiveArray}, bitmap::{Bitmap, MutableBitmap}, diff --git a/src/compute/take/primitive.rs b/src/compute/take/primitive.rs index cff907a0155..8fdba3b4ad6 100644 --- a/src/compute/take/primitive.rs +++ b/src/compute/take/primitive.rs @@ -14,7 +14,6 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. - use crate::{ array::{Array, PrimitiveArray}, bitmap::{Bitmap, MutableBitmap},