Skip to content
Snippets Groups Projects
  • Stepan Koltsov's avatar
    b9ccd2a8
    Optimize Bytes::slice for short slices (#136) · b9ccd2a8
    Stepan Koltsov authored
    Slice operation should return inline when possible
    
    It is cheaper than atomic increment/decrement.
    
    Before this patch:
    
    ```
    test slice_avg_le_inline_from_arc   ... bench:      28,582 ns/iter (+/- 3,880)
    test slice_empty                    ... bench:       8,797 ns/iter (+/- 1,325)
    test slice_large_le_inline_from_arc ... bench:      27,684 ns/iter (+/- 5,920)
    test slice_short_from_arc           ... bench:      27,439 ns/iter (+/- 5,783)
    ```
    
    After this patch:
    
    ```
    test slice_avg_le_inline_from_arc   ... bench:      18,872 ns/iter (+/- 2,937)
    test slice_empty                    ... bench:       9,136 ns/iter (+/- 1,908)
    test slice_large_le_inline_from_arc ... bench:      18,052 ns/iter (+/- 2,981)
    test slice_short_from_arc           ... bench:      18,200 ns/iter (+/- 2,534)
    ```
    b9ccd2a8
    History
    Optimize Bytes::slice for short slices (#136)
    Stepan Koltsov authored
    Slice operation should return inline when possible
    
    It is cheaper than atomic increment/decrement.
    
    Before this patch:
    
    ```
    test slice_avg_le_inline_from_arc   ... bench:      28,582 ns/iter (+/- 3,880)
    test slice_empty                    ... bench:       8,797 ns/iter (+/- 1,325)
    test slice_large_le_inline_from_arc ... bench:      27,684 ns/iter (+/- 5,920)
    test slice_short_from_arc           ... bench:      27,439 ns/iter (+/- 5,783)
    ```
    
    After this patch:
    
    ```
    test slice_avg_le_inline_from_arc   ... bench:      18,872 ns/iter (+/- 2,937)
    test slice_empty                    ... bench:       9,136 ns/iter (+/- 1,908)
    test slice_large_le_inline_from_arc ... bench:      18,052 ns/iter (+/- 2,981)
    test slice_short_from_arc           ... bench:      18,200 ns/iter (+/- 2,534)
    ```