twox-hash:XXHash算法的Rust实现

  • B9_981482
    了解作者
  • 33.3KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-08 01:23
    上传日期
TwoX哈希 算法的Rust实现。 例子 带有固定种子 use std :: hash :: BuildHasherDefault; use std :: collections :: HashMap; use twox_hash :: XxHash64; let mut hash: HashMap &lt; _, _, BuildHasherDefault < XxHash64>> = Default :: default (); hash. insert ( 42 , "the answer" ); assert_eq! (hash. get ( & 42 ), Some ( & "the answer" )); 带有随机种子 use std :: collections :: HashMap; use twox_hash :: RandomXxHashBuilder64; let mut
twox-hash-master.zip
内容介绍
# TwoX-Hash A Rust implementation of the [XXHash] algorithm. [![Build Status](https://travis-ci.org/shepmaster/twox-hash.svg)](https://travis-ci.org/shepmaster/twox-hash) [![Current Version](http://meritbadge.herokuapp.com/twox-hash)](https://crates.io/crates/twox-hash) [Documentation](https://docs.rs/twox-hash/) [XXHash]: https://github.com/Cyan4973/xxHash ## Examples ### With a fixed seed ```rust use std::hash::BuildHasherDefault; use std::collections::HashMap; use twox_hash::XxHash64; let mut hash: HashMap<_, _, BuildHasherDefault<XxHash64>> = Default::default(); hash.insert(42, "the answer"); assert_eq!(hash.get(&42), Some(&"the answer")); ``` ### With a random seed ```rust use std::collections::HashMap; use twox_hash::RandomXxHashBuilder64; let mut hash: HashMap<_, _, RandomXxHashBuilder64> = Default::default(); hash.insert(42, "the answer"); assert_eq!(hash.get(&42), Some(&"the answer")); ``` ## Benchmarks ### 64-bit | Bytes | SipHasher (MB/s) | XXHash (MB/s) | Ratio | |---------|------------------|---------------|-------| | 1 | 52 | 38 | 73% | | 4 | 210 | 148 | 70% | | 16 | 615 | 615 | 100% | | 32 | 914 | 1391 | 152% | | 128 | 1347 | 3657 | 271% | | 256 | 1414 | 5019 | 355% | | 512 | 1546 | 6168 | 399% | | 1024 | 1565 | 6206 | 397% | | 1048576 | 1592 | 7564 | 475% | | Bytes | [FnvHasher][fnv] (MB/s) | XXHash (MB/s) | Ratio | |---------|-------------------------|---------------|-------| | 1 | 1000 | 38 | 4% | | 4 | 800 | 148 | 19% | | 16 | 761 | 615 | 81% | | 32 | 761 | 1391 | 183% | | 128 | 727 | 3657 | 503% | | 256 | 759 | 5019 | 661% | | 512 | 745 | 6168 | 828% | | 1024 | 741 | 6206 | 838% | | 1048576 | 745 | 7564 | 1015% | ### 32-bit | Bytes | SipHasher (MB/s) | XXHash32 (MB/s) | Ratio | |---------|------------------|-----------------|-------| | 1 | 52 | 55 | 106% | | 4 | 210 | 210 | 100% | | 16 | 615 | 1230 | 200% | | 32 | 914 | 1882 | 206% | | 128 | 1347 | 3282 | 244% | | 256 | 1414 | 3459 | 245% | | 512 | 1546 | 3792 | 245% | | 1024 | 1565 | 3938 | 252% | | 1048576 | 1592 | 4127 | 259% | | Bytes | [FnvHasher][fnv] (MB/s) | XXHash32 (MB/s) | Ratio | |---------|-------------------------|-----------------|-------| | 1 | 1000 | 55 | 6% | | 4 | 800 | 210 | 26% | | 16 | 761 | 1230 | 162% | | 32 | 761 | 1882 | 247% | | 128 | 727 | 3282 | 451% | | 256 | 759 | 3459 | 456% | | 512 | 745 | 3792 | 509% | | 1024 | 741 | 3938 | 531% | | 1048576 | 745 | 4127 | 554% | [fnv]: https://github.com/servo/rust-fnv ## Contributing 1. Fork it ( https://github.com/shepmaster/twox-hash/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Add a failing test. 4. Add code to pass the test. 5. Commit your changes (`git commit -am 'Add some feature'`) 6. Ensure tests pass. 7. Push to the branch (`git push origin my-new-feature`) 8. Create a new Pull Request
评论
    相关推荐
    • rake-rs — RAKE算法Rust上的多语言实现-Rust开发
      RAKE.rs该库提供了用于Rust的快速自动关键字提取(RAKE)算法的多语言实现。 如何在RAKE.rs上使用附加rake该库提供了Rust的快速自动关键字提取(RAKE)算法的多语言实现。 如何使用将rake附加到Cargo.toml的依赖项:...
    • cassowary-rs:Cassowary约束求解算法Rust实现
      cassowary-rs:Cassowary约束求解算法Rust实现
    • rust-genetic-algorithm-一种解决学术基准问题的遗传算法-Rust开发
      遗传算法Rust中的遗传算法可解决以下基准问题:Ackley Griewangk Rastrigin Rosenbrock Schwefel球体用法:Insta遗传算法Rust中的遗传算法可解决以下基准问题:Ackley Griewangk Rastrigin Rosenbrock Schwefel球体...
    • rusty-rete:Rete 算法Rust 中的实现
      生锈的网 Rete 算法Rust 中的实现。
    • freeverb-rs:Freeverb算法Rust实现
      Freeverb算法Rust实现。 关于自由词 Freeverb最初由“ Jezar at Dreampoint”用C ++编写,并于2000年6月发布到公共领域。现在,它已在多种软件的各种版本中广泛使用。 关于freeverb-rs Rust中Freeverb的这种实现...
    • spiril:用于遗传算法Rust
      Spiril是遗传算法的一种实现,该遗传算法用于通过突变和自然选择来获得任务的最佳变量(遗传)。 API使您可以指定一组初始单元,这些单元将充当所有后续单元的原始父级。 单位类型实现适应度函数和繁殖函数,以将新...
    • Rust:在Rust中实现的所有算法
      Rust:在Rust中实现的所有算法
    • redcentipede:Rust 中的遗传算法项目
      Rust 中的遗传算法项目 该项目的概念大量借鉴了。 红蜈蚣的一般博弈论 那里存在: 世界 部分代理 一些资源 时间单位 世界- 世界是一个具有 X、Y 坐标的二维网格。 存在的代理和资源都有一个 X 和一个 Y,它们指的是...
    • isosurface:等值面提取的Rust算法
      Rust中实现的等值面提取算法。 包括经典的行进立方体和双重轮廓技术,以及主题上的更多现代变化。 为了教育的目的,每种提取算法的文档都链接到相关的学术论文。 范例程序 cargo run --example sampler将执行采样...
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档