#compare #slice #integer #optimized #issue #solution #temporary

memcmp

针对整数切片的优化内存比较。在 rust issue 16913 问题解决前作为临时解决方案。

5 个版本

使用旧的 Rust 2015

0.0.6 2015年4月22日
0.0.5 2015年2月13日
0.0.4 2015年1月10日
0.0.2 2015年1月9日
0.0.1 2015年1月9日

#2940Rust 模式


3 个crate中使用

MIT 协议

7KB
134

rust-memcmp

构建状态 优化整数切片比较。使用 memcmp 高效比较整数切片。

Rust issue 16913 的解决方案。

###基线 PartialEq 比较测试: ####test test::u8_slice_cmp ... 基准: 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
    });
}

###使用此 crate: ###test test::u8_memcmp ... 基准: 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)
    });
}

无运行时依赖

特性