Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve PartialEq for slices #26884

Merged
merged 1 commit into from
Jul 9, 2015
Merged

Improve PartialEq for slices #26884

merged 1 commit into from
Jul 9, 2015

Commits on Jul 8, 2015

  1. Improve PartialEq for slices

    Exploiting the fact that getting the length of the slices is known, we
    can use a counted loop instead of iterators, which means that we only
    need a single counter, instead of having to increment and check one
    pointer for each iterator.
    
    Benchmarks comparing vectors with 100,000 elements:
    
    Before:
    
    ```
    running 8 tests
    test eq1_u8  ... bench:      66,757 ns/iter (+/- 113)
    test eq2_u16 ... bench:     111,267 ns/iter (+/- 149)
    test eq3_u32 ... bench:     126,282 ns/iter (+/- 111)
    test eq4_u64 ... bench:     126,418 ns/iter (+/- 155)
    test ne1_u8  ... bench:      88,990 ns/iter (+/- 161)
    test ne2_u16 ... bench:      89,126 ns/iter (+/- 265)
    test ne3_u32 ... bench:      96,901 ns/iter (+/- 92)
    test ne4_u64 ... bench:      96,750 ns/iter (+/- 137)
    ```
    
    After:
    
    ```
    running 8 tests
    test eq1_u8  ... bench:      46,413 ns/iter (+/- 521)
    test eq2_u16 ... bench:      46,500 ns/iter (+/- 74)
    test eq3_u32 ... bench:      50,059 ns/iter (+/- 92)
    test eq4_u64 ... bench:      54,001 ns/iter (+/- 92)
    test ne1_u8  ... bench:      47,595 ns/iter (+/- 53)
    test ne2_u16 ... bench:      47,521 ns/iter (+/- 59)
    test ne3_u32 ... bench:      44,889 ns/iter (+/- 74)
    test ne4_u64 ... bench:      47,775 ns/iter (+/- 68)
    ```
    dotdash committed Jul 8, 2015
    Configuration menu
    Copy the full SHA
    9f4d5b4 View commit details
    Browse the repository at this point in the history