Skip to content

Conversation

@cijiugechu
Copy link

Which issue does this PR close?

N/A.

Rationale for this change

Prior art: serde_json switch to zmij.

What changes are included in this PR?

zmij already supports f32 formatting, so switch from ryu to zmij.

Are these changes tested?

Yes.

Are there any user-facing changes?

No.

@github-actions github-actions bot added the arrow Changes to the arrow crate label Dec 26, 2025
@alamb
Copy link
Contributor

alamb commented Jan 6, 2026

I think we would need some benchmarks to justify switching crates

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR @cijiugechu


criterion = { version = "0.8.0", default-features = false }

zmij = "0.1"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a dtonay special

https://crates.io/crates/zmij/versions

It is only 20 days old (it is already on version 1). I think we should wait a while for this crate to percolate through the ecosystem and see how it matures

Image

@Dandandan
Copy link
Contributor

@cijiugechu could you report any benchmark results?

@alamb alamb marked this pull request as draft January 7, 2026 17:16
@cijiugechu
Copy link
Author

Ran the benchmarks via cargo bench -p arrow.

Before
validate_binary_array_data 20000
                        time:   [14.039 µs 14.306 µs 14.630 µs]
Found 21 outliers among 100 measurements (21.00%)
  2 (2.00%) low mild
  19 (19.00%) high severe

validate_utf8_array_data 20000
                        time:   [20.709 µs 20.715 µs 20.722 µs]
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  5 (5.00%) high mild
  1 (1.00%) high severe

byte_array_to_string_array 20000
                        time:   [8.9171 µs 8.9208 µs 8.9251 µs]
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  5 (5.00%) high severe

     Running benches/array_from.rs (target/release/deps/array_from-bd26d62f6385540e)
array_from_vec 128      time:   [91.539 ns 91.634 ns 91.740 ns]
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe

array_from_vec 256      time:   [93.824 ns 93.899 ns 93.985 ns]
Found 15 outliers among 100 measurements (15.00%)
  1 (1.00%) low mild
  14 (14.00%) high mild

array_from_vec 512      time:   [117.28 ns 117.45 ns 117.60 ns]

array_string_from_vec 128
                        time:   [581.64 ns 582.59 ns 583.58 ns]
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) low mild
  2 (2.00%) high mild

array_string_from_vec 256
                        time:   [966.08 ns 972.12 ns 978.17 ns]
Found 14 outliers among 100 measurements (14.00%)
  6 (6.00%) high mild
  8 (8.00%) high severe

array_string_from_vec 512
                        time:   [1.6972 µs 1.6996 µs 1.7023 µs]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

struct_array_from_vec 128
                        time:   [1.0209 µs 1.0223 µs 1.0242 µs]
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  1 (1.00%) high severe

struct_array_from_vec 256
                        time:   [1.4313 µs 1.4341 µs 1.4384 µs]
Found 5 outliers among 100 measurements (5.00%)
  2 (2.00%) high mild
  3 (3.00%) high severe

struct_array_from_vec 512
                        time:   [2.3942 µs 2.3981 µs 2.4030 µs]
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) high mild
  3 (3.00%) high severe

struct_array_from_vec 1024
                        time:   [4.3944 µs 4.3992 µs 4.4037 µs]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

decimal32_array_from_vec 32768
                        time:   [35.836 µs 35.910 µs 36.040 µs]
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe

decimal64_array_from_vec 32768
                        time:   [41.185 µs 41.232 µs 41.276 µs]
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild

decimal128_array_from_vec 32768
                        time:   [41.910 µs 42.216 µs 42.599 µs]
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) high mild
  7 (7.00%) high severe

decimal256_array_from_vec 32768
                        time:   [2.0653 µs 2.0780 µs 2.0981 µs]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

Int64Array::from_iter   time:   [17.116 µs 17.131 µs 17.155 µs]
Found 8 outliers among 100 measurements (8.00%)
  6 (6.00%) high mild
  2 (2.00%) high severe

Int64Array::from_trusted_len_iter
                        time:   [9.7185 µs 9.8611 µs 10.033 µs]
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  2 (2.00%) high mild
  6 (6.00%) high severe

BooleanArray::from_iter time:   [9.7385 µs 9.7481 µs 9.7606 µs]
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe

BooleanArray::from_trusted_len_iter
                        time:   [10.438 µs 10.663 µs 10.864 µs]

     Running benches/array_slice.rs (target/release/deps/array_slice-f0e5243c28923596)
array_slice 128         time:   [54.574 ns 54.633 ns 54.700 ns]
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe

array_slice 512         time:   [56.015 ns 56.114 ns 56.218 ns]
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild

array_slice 2048        time:   [61.266 ns 61.421 ns 61.587 ns]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

     Running benches/bit_length_kernel.rs (target/release/deps/bit_length_kernel-e89d60301d15231c)
bit_length              time:   [678.13 ns 678.60 ns 679.23 ns]
Found 8 outliers among 100 measurements (8.00%)
  3 (3.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe

     Running benches/boolean_append_packed.rs (target/release/deps/boolean_append_packed-4f99bb8b47350b7b)
boolean_append_packed   time:   [2.2933 µs 2.2961 µs 2.2998 µs]
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) low mild
  3 (3.00%) high mild
  4 (4.00%) high severe

     Running benches/buffer_bit_ops.rs (target/release/deps/buffer_bit_ops-796dd357d8f23e1a)
buffer_binary_ops/and   time:   [106.39 ns 106.45 ns 106.52 ns]
                        thrpt:  [134.30 GiB/s 134.38 GiB/s 134.46 GiB/s]
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) low mild
  4 (4.00%) high mild
buffer_binary_ops/or    time:   [106.28 ns 106.46 ns 106.63 ns]
                        thrpt:  [134.16 GiB/s 134.37 GiB/s 134.60 GiB/s]
Found 10 outliers among 100 measurements (10.00%)
  7 (7.00%) low severe
  3 (3.00%) low mild
buffer_binary_ops/and_with_offset
                        time:   [648.11 ns 648.37 ns 648.70 ns]
                        thrpt:  [22.052 GiB/s 22.063 GiB/s 22.072 GiB/s]
Found 5 outliers among 100 measurements (5.00%)
  2 (2.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe
buffer_binary_ops/or_with_offset
                        time:   [654.64 ns 654.82 ns 655.01 ns]
                        thrpt:  [21.840 GiB/s 21.846 GiB/s 21.852 GiB/s]
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe

buffer_unary_ops/not    time:   [78.384 ns 78.817 ns 79.249 ns]
                        thrpt:  [120.34 GiB/s 121.00 GiB/s 121.67 GiB/s]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
buffer_unary_ops/not_with_offset
                        time:   [318.47 ns 318.65 ns 318.83 ns]
                        thrpt:  [29.911 GiB/s 29.929 GiB/s 29.945 GiB/s]
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) high mild

     Running benches/csv_writer.rs (target/release/deps/csv_writer-29c89d9bd6c2029c)
record_batches_to_csv   time:   [10.015 µs 10.037 µs 10.057 µs]
Found 19 outliers among 100 measurements (19.00%)
  18 (18.00%) high mild
  1 (1.00%) high severe

     Running benches/decimal_validate.rs (target/release/deps/decimal_validate-b2f7811ba4211289)
validate_decimal32_array 20000
                        time:   [49.849 ns 49.939 ns 50.040 ns]
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

validate_decimal64_array 20000
                        time:   [49.636 ns 49.722 ns 49.818 ns]
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

validate_decimal128_array 20000
                        time:   [49.637 ns 49.726 ns 49.825 ns]

validate_decimal256_array 20000
                        time:   [49.639 ns 49.730 ns 49.831 ns]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

     Running benches/length_kernel.rs (target/release/deps/length_kernel-285f0e8994782783)
length                  time:   [296.72 ns 297.04 ns 297.37 ns]
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  1 (1.00%) high severe

     Running benches/string_dictionary_builder.rs (target/release/deps/string_dictionary_builder-6347a8f83709997f)
string_dictionary_builder/(dict_size:20, len:1000, key_len: 5)
                        time:   [8.1393 µs 8.1575 µs 8.1767 µs]
string_dictionary_builder/(dict_size:100, len:1000, key_len: 5)
                        time:   [9.7201 µs 9.7386 µs 9.7575 µs]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
string_dictionary_builder/(dict_size:100, len:1000, key_len: 10)
                        time:   [9.6499 µs 9.6587 µs 9.6677 µs]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high severe
string_dictionary_builder/(dict_size:100, len:10000, key_len: 10)
                        time:   [75.519 µs 75.589 µs 75.658 µs]
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
string_dictionary_builder/(dict_size:100, len:10000, key_len: 100)
                        time:   [292.06 µs 294.47 µs 297.26 µs]
Found 16 outliers among 100 measurements (16.00%)
  1 (1.00%) high mild
  15 (15.00%) high severe

     Running benches/string_run_iterator.rs (target/release/deps/string_run_iterator-761201b11a4f7902)
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 5)
                        time:   [1.5274 µs 1.5279 µs 1.5285 µs]
Found 11 outliers among 100 measurements (11.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  4 (4.00%) high mild
  4 (4.00%) high severe
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 25)
                        time:   [1.5277 µs 1.5287 µs 1.5299 µs]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 100)
                        time:   [1.5269 µs 1.5275 µs 1.5281 µs]
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  2 (2.00%) high mild
  1 (1.00%) high severe
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 5)
                        time:   [3.0838 µs 3.0851 µs 3.0865 µs]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high severe
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 25)
                        time:   [3.0805 µs 3.0836 µs 3.0875 µs]
Found 11 outliers among 100 measurements (11.00%)
  3 (3.00%) low mild
  5 (5.00%) high mild
  3 (3.00%) high severe
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 100)
                        time:   [3.0793 µs 3.0807 µs 3.0819 µs]
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  2 (2.00%) high mild
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 5)
                        time:   [6.1962 µs 6.1998 µs 6.2034 µs]
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 25)
                        time:   [6.1834 µs 6.1876 µs 6.1935 µs]
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  2 (2.00%) high mild
  7 (7.00%) high severe
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 100)
                        time:   [6.1848 µs 6.1865 µs 6.1884 µs]
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe
After
validate_binary_array_data 20000
                        time:   [14.001 µs 14.272 µs 14.597 µs]
                        change: [−2.7391% −0.0953% +2.6683%] (p = 0.93 > 0.05)
                        No change in performance detected.
Found 24 outliers among 100 measurements (24.00%)
  4 (4.00%) low severe
  1 (1.00%) low mild
  2 (2.00%) high mild
  17 (17.00%) high severe

validate_utf8_array_data 20000
                        time:   [20.700 µs 20.716 µs 20.736 µs]
                        change: [+0.0078% +0.1017% +0.2212%] (p = 0.08 > 0.05)
                        No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
  3 (3.00%) high mild
  4 (4.00%) high severe

byte_array_to_string_array 20000
                        time:   [8.9163 µs 8.9195 µs 8.9232 µs]
                        change: [−0.0371% +0.0734% +0.1991%] (p = 0.25 > 0.05)
                        No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
  3 (3.00%) low severe
  1 (1.00%) low mild
  2 (2.00%) high mild
  7 (7.00%) high severe

     Running benches/array_from.rs (target/release/deps/array_from-9343ef2b99f52d98)
array_from_vec 128      time:   [91.867 ns 92.027 ns 92.209 ns]
                        change: [+0.0723% +0.3575% +0.5822%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

array_from_vec 256      time:   [94.176 ns 94.262 ns 94.363 ns]
                        change: [+0.2725% +0.3894% +0.5017%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 20 outliers among 100 measurements (20.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  11 (11.00%) high mild
  7 (7.00%) high severe

array_from_vec 512      time:   [114.82 ns 115.24 ns 115.88 ns]
                        change: [−2.6231% −2.3470% −2.0491%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high severe

array_string_from_vec 128
                        time:   [525.02 ns 525.67 ns 526.69 ns]
                        change: [−10.101% −9.8957% −9.6811%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  5 (5.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe

array_string_from_vec 256
                        time:   [865.94 ns 866.51 ns 867.34 ns]
                        change: [−10.655% −10.360% −10.087%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) low severe
  1 (1.00%) high mild
  2 (2.00%) high severe

array_string_from_vec 512
                        time:   [1.5226 µs 1.5244 µs 1.5267 µs]
                        change: [−10.352% −10.136% −9.9509%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  3 (3.00%) high severe

struct_array_from_vec 128
                        time:   [949.76 ns 952.90 ns 957.55 ns]
                        change: [−7.0842% −6.8106% −6.3804%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  5 (5.00%) high severe

struct_array_from_vec 256
                        time:   [1.4319 µs 1.4328 µs 1.4337 µs]
                        change: [−0.2612% −0.1169% +0.0043%] (p = 0.09 > 0.05)
                        No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) low mild

struct_array_from_vec 512
                        time:   [2.3449 µs 2.3500 µs 2.3591 µs]
                        change: [−2.2935% −2.0491% −1.7723%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe

struct_array_from_vec 1024
                        time:   [4.2325 µs 4.2361 µs 4.2399 µs]
                        change: [−3.3490% −3.1717% −2.9961%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) low mild
  2 (2.00%) high mild
  2 (2.00%) high severe

decimal32_array_from_vec 32768
                        time:   [36.065 µs 36.099 µs 36.137 µs]
                        change: [+0.6536% +0.8232% +0.9760%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe

decimal64_array_from_vec 32768
                        time:   [38.618 µs 38.648 µs 38.680 µs]
                        change: [−6.3179% −6.1972% −6.0548%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) low mild
  3 (3.00%) high mild
  4 (4.00%) high severe

decimal128_array_from_vec 32768
                        time:   [41.838 µs 41.972 µs 42.153 µs]
                        change: [−0.2502% +0.7106% +1.7778%] (p = 0.18 > 0.05)
                        No change in performance detected.
Found 15 outliers among 100 measurements (15.00%)
  4 (4.00%) high mild
  11 (11.00%) high severe

decimal256_array_from_vec 32768
                        time:   [2.0740 µs 2.0790 µs 2.0845 µs]
                        change: [−0.1742% +0.4496% +0.8867%] (p = 0.09 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Int64Array::from_iter   time:   [17.103 µs 17.112 µs 17.123 µs]
                        change: [−0.2564% −0.1157% −0.0194%] (p = 0.05 < 0.05)
                        Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
  7 (7.00%) high mild
  1 (1.00%) high severe

Int64Array::from_trusted_len_iter
                        time:   [11.103 µs 11.772 µs 12.460 µs]
                        change: [+8.2148% +13.428% +18.857%] (p = 0.00 < 0.05)
                        Performance has regressed.

BooleanArray::from_iter time:   [10.227 µs 10.231 µs 10.235 µs]
                        change: [+4.7642% +4.8479% +4.9270%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  5 (5.00%) high severe

BooleanArray::from_trusted_len_iter
                        time:   [9.0738 µs 9.1081 µs 9.1571 µs]
                        change: [−11.081% −9.2381% −7.3183%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  10 (10.00%) high severe

     Running benches/array_slice.rs (target/release/deps/array_slice-f2c6fc03ce5284e8)
array_slice 128         time:   [55.606 ns 55.736 ns 55.881 ns]
                        change: [+1.5236% +2.0023% +2.3885%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

array_slice 512         time:   [55.524 ns 55.617 ns 55.723 ns]
                        change: [−1.0006% −0.7270% −0.4281%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

array_slice 2048        time:   [61.168 ns 61.335 ns 61.515 ns]
                        change: [−0.3676% −0.0750% +0.2470%] (p = 0.63 > 0.05)
                        No change in performance detected.

     Running benches/bit_length_kernel.rs (target/release/deps/bit_length_kernel-685c487b3bcb47fa)
bit_length              time:   [678.32 ns 680.08 ns 683.31 ns]
                        change: [−0.0344% +0.2071% +0.5899%] (p = 0.24 > 0.05)
                        No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
  2 (2.00%) low severe
  4 (4.00%) low mild
  1 (1.00%) high mild
  6 (6.00%) high severe

     Running benches/boolean_append_packed.rs (target/release/deps/boolean_append_packed-5ee5c75fde11ba8d)
boolean_append_packed   time:   [2.4415 µs 2.4458 µs 2.4508 µs]
                        change: [+6.1090% +6.3462% +6.5602%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  2 (2.00%) high mild
  3 (3.00%) high severe

     Running benches/buffer_bit_ops.rs (target/release/deps/buffer_bit_ops-4754ab3b32a9d575)
buffer_binary_ops/and   time:   [107.49 ns 107.62 ns 107.76 ns]
                        thrpt:  [132.75 GiB/s 132.92 GiB/s 133.08 GiB/s]
                 change:
                        time:   [+1.1265% +1.2516% +1.3772%] (p = 0.00 < 0.05)
                        thrpt:  [−1.3585% −1.2361% −1.1140%]
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe
buffer_binary_ops/or    time:   [109.22 ns 109.43 ns 109.72 ns]
                        thrpt:  [130.38 GiB/s 130.72 GiB/s 130.98 GiB/s]
                 change:
                        time:   [+2.5734% +2.8222% +3.0981%] (p = 0.00 < 0.05)
                        thrpt:  [−3.0050% −2.7447% −2.5088%]
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) high mild
  4 (4.00%) high severe
buffer_binary_ops/and_with_offset
                        time:   [660.32 ns 660.46 ns 660.62 ns]
                        thrpt:  [21.654 GiB/s 21.659 GiB/s 21.664 GiB/s]
                 change:
                        time:   [+1.6066% +1.7380% +1.8417%] (p = 0.00 < 0.05)
                        thrpt:  [−1.8084% −1.7083% −1.5812%]
                        Performance has regressed.
Found 16 outliers among 100 measurements (16.00%)
  3 (3.00%) low severe
  5 (5.00%) low mild
  2 (2.00%) high mild
  6 (6.00%) high severe
buffer_binary_ops/or_with_offset
                        time:   [666.89 ns 667.47 ns 668.30 ns]
                        thrpt:  [21.405 GiB/s 21.432 GiB/s 21.450 GiB/s]
                 change:
                        time:   [+1.8004% +1.9137% +2.0723%] (p = 0.00 < 0.05)
                        thrpt:  [−2.0302% −1.8777% −1.7685%]
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  3 (3.00%) low mild
  3 (3.00%) high mild
  3 (3.00%) high severe

buffer_unary_ops/not    time:   [92.938 ns 93.083 ns 93.257 ns]
                        thrpt:  [102.26 GiB/s 102.45 GiB/s 102.61 GiB/s]
                 change:
                        time:   [+17.334% +18.122% +18.937%] (p = 0.00 < 0.05)
                        thrpt:  [−15.922% −15.341% −14.773%]
                        Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
  4 (4.00%) high mild
  3 (3.00%) high severe
buffer_unary_ops/not_with_offset
                        time:   [330.04 ns 330.47 ns 331.33 ns]
                        thrpt:  [28.784 GiB/s 28.858 GiB/s 28.896 GiB/s]
                 change:
                        time:   [+3.5187% +3.6647% +3.8918%] (p = 0.00 < 0.05)
                        thrpt:  [−3.7460% −3.5352% −3.3991%]
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  2 (2.00%) high mild
  5 (5.00%) high severe

     Running benches/csv_writer.rs (target/release/deps/csv_writer-89c72f00bb43c5e4)
record_batches_to_csv   time:   [9.6657 µs 9.6768 µs 9.6883 µs]
                        change: [−3.5289% −3.3767% −3.2178%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe

     Running benches/decimal_validate.rs (target/release/deps/decimal_validate-49316795693ac24a)
validate_decimal32_array 20000
                        time:   [49.851 ns 49.938 ns 50.027 ns]
                        change: [−0.4215% −0.1820% +0.0704%] (p = 0.14 > 0.05)
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild

validate_decimal64_array 20000
                        time:   [49.659 ns 49.746 ns 49.838 ns]
                        change: [−1.7994% −0.8400% −0.1054%] (p = 0.04 < 0.05)
                        Change within noise threshold.

validate_decimal128_array 20000
                        time:   [49.648 ns 49.739 ns 49.832 ns]
                        change: [−0.2837% −0.0639% +0.1590%] (p = 0.58 > 0.05)
                        No change in performance detected.

validate_decimal256_array 20000
                        time:   [49.645 ns 49.738 ns 49.835 ns]
                        change: [−0.3297% −0.0846% +0.1435%] (p = 0.49 > 0.05)
                        No change in performance detected.

     Running benches/length_kernel.rs (target/release/deps/length_kernel-62be548b6447a79c)
length                  time:   [296.08 ns 296.33 ns 296.58 ns]
                        change: [−1.8578% −0.8026% −0.1890%] (p = 0.05 > 0.05)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) low mild
  2 (2.00%) high severe

     Running benches/string_dictionary_builder.rs (target/release/deps/string_dictionary_builder-ef3568545b0aa444)
string_dictionary_builder/(dict_size:20, len:1000, key_len: 5)
                        time:   [8.1071 µs 8.1279 µs 8.1500 µs]
                        change: [−0.8137% −0.5768% −0.3325%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild
string_dictionary_builder/(dict_size:100, len:1000, key_len: 5)
                        time:   [9.7811 µs 9.8202 µs 9.8681 µs]
                        change: [−0.0390% +0.2796% +0.6027%] (p = 0.10 > 0.05)
                        No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) high mild
  2 (2.00%) high severe
string_dictionary_builder/(dict_size:100, len:1000, key_len: 10)
                        time:   [9.5445 µs 9.5829 µs 9.6427 µs]
                        change: [−1.2681% −0.9245% −0.4447%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  7 (7.00%) high severe
string_dictionary_builder/(dict_size:100, len:10000, key_len: 10)
                        time:   [75.828 µs 76.185 µs 76.630 µs]
                        change: [+0.5209% +1.1162% +1.8147%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
  1 (1.00%) high mild
  11 (11.00%) high severe
string_dictionary_builder/(dict_size:100, len:10000, key_len: 100)
                        time:   [289.67 µs 290.07 µs 290.62 µs]
                        change: [−1.3223% −0.6532% +0.0235%] (p = 0.07 > 0.05)
                        No change in performance detected.
Found 14 outliers among 100 measurements (14.00%)
  5 (5.00%) high mild
  9 (9.00%) high severe

     Running benches/string_run_iterator.rs (target/release/deps/string_run_iterator-bc8bd111616d7677)
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 5)
                        time:   [1.5269 µs 1.5273 µs 1.5277 µs]
                        change: [−0.0859% +0.0037% +0.1039%] (p = 0.94 > 0.05)
                        No change in performance detected.
Found 14 outliers among 100 measurements (14.00%)
  2 (2.00%) low severe
  8 (8.00%) high mild
  4 (4.00%) high severe
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 25)
                        time:   [1.5292 µs 1.5301 µs 1.5309 µs]
                        change: [−0.1310% −0.0638% +0.0030%] (p = 0.07 > 0.05)
                        No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  4 (4.00%) high mild
string_run_iterator/(run_array_len:1024, physical_array_len:256, string_len: 100)
                        time:   [1.5268 µs 1.5275 µs 1.5283 µs]
                        change: [−0.1321% −0.0656% −0.0006%] (p = 0.05 > 0.05)
                        No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) low mild
  3 (3.00%) high mild
  1 (1.00%) high severe
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 5)
                        time:   [3.0876 µs 3.0891 µs 3.0904 µs]
                        change: [+0.0155% +0.0899% +0.1633%] (p = 0.02 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 25)
                        time:   [3.0845 µs 3.0856 µs 3.0866 µs]
                        change: [+0.0890% +0.1775% +0.2630%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  2 (2.00%) high mild
  1 (1.00%) high severe
string_run_iterator/(run_array_len:2048, physical_array_len:512, string_len: 100)
                        time:   [3.0782 µs 3.0790 µs 3.0797 µs]
                        change: [−0.0532% −0.0166% +0.0229%] (p = 0.38 > 0.05)
                        No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 5)
                        time:   [6.1782 µs 6.1800 µs 6.1819 µs]
                        change: [−0.3632% −0.3066% −0.2496%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) low mild
  2 (2.00%) high mild
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 25)
                        time:   [6.1912 µs 6.1953 µs 6.1997 µs]
                        change: [+0.0040% +0.0725% +0.1359%] (p = 0.04 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe
string_run_iterator/(run_array_len:4096, physical_array_len:1024, string_len: 100)
                        time:   [6.1804 µs 6.1830 µs 6.1856 µs]
                        change: [−0.1807% −0.0626% +0.0617%] (p = 0.34 > 0.05)
                        No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  5 (5.00%) high mild
  3 (3.00%) high severe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants