Skip to content
Optimized comparisons for integer slices
Branch: master
Clone or download
Latest commit 7f8384d Apr 22, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
.travis.yml
Cargo.toml
README.md

README.md

rust-memcmp

Build status Optimized comparisons for integer slices. Use memcmp to compare integer slices efficiently.

Workaround for Rust issue 16913.

###Baseline PartialEq comparison: ####test test::u8_slice_cmp ... bench: 2201 ns/iter (+/- 113) = 454 MB/s

#[bench]
fn slice_cmp(b: &mut test::Bencher) {
    let vec1 = vec![b'c';10_000];
    let vec2 = vec1.clone();
    
    b.bytes = vec1.len() as u64;
    b.iter(|| {
        let (s1, s2) = ( &vec1, &vec2 );
        return s1==s2
    });
}

###Using this crate: ###test test::u8_memcmp ... bench: 33 ns/iter (+/- 2) = 30303 MB/s

extern crate memcmp;
use memcmp::Memcmp;
#[bench]
fn memcmp_cmp(b: &mut test::Bencher) {
    let vec1 = vec![b'c';10_000];
    let vec2 = vec1.clone();
    
    b.bytes = vec1.len() as u64;
    b.iter(|| {
        let (s1, s2) = ( &vec1, &vec2 );
        return s1.memcmp(s2)
    });
}
You can’t perform that action at this time.