首页
学习
活动
专区
工具
TVP
发布

Rust语言学习交流

专栏作者
1523
文章
1061823
阅读量
141
订阅数
【Rust日报】2022-12-07 测量 Rust 中 HashMap 的开销
在处理将大量数据放入 HashMap的项目时,作者开始注意到 HashMap 占用了大量内存并对最小内存使用量进行了粗略计算,得到的常驻内存是预期的两倍多。我们都知道 HashMaps 以空间换取时间。通过使用更多空间,我们能够使插入和检索更加高效。但是他们为那个时间权衡了多少空间?作者当下没有那个问题的答案,所以他决定测量并找出答案。如果你只是想知道答案,请跳到文章最后一节;当你看到图表时,你就会知道你在那里。此外,如果您想进行自己的分析,可以使用所有支持代码和数据。
MikeLoveRust
2023-02-10
3080
【Rust日报】2022-11-09 稳定复现的 HashMap 陷阱
当我们看了很多哈希函数的介绍并切换到一个你认为更快的哈希函数上面时,大部分代码都获得了预期的速度提升,但有些部分却莫名其妙地变慢了很多,尤其是在处理大型 hashMap 时。如果这听起来很熟悉,那么您可能遇到了稳定复现的 HashMap 陷阱。Google SwissTable 是 2017 年 CppCon 上被发表的一个高性能的 hashTable 。从 Rust 1.36 开始,SwissTable 就是 Rust HashMap 的标准库实现。虽然它有不错的性能,但 SwissTable 旨在以性能为代价抵御一类 HashDoS 攻击。如果您关心性能并且不关心安全问题,切换到类似 FxHasher 或者 ahash 可以显着提高性能。然而,这个建议的代价却很少有人提及 —— 一些 O(n) hashTable 操作,包括反序列化,在一些 case 下它的时间复杂度有可能会升级到 O(n**2)。下面博文会给大家带来测试 case 以及为什么会发生如此大的性能差距
MikeLoveRust
2022-11-28
5480
【Rust笔记】从·类型转换·视角,浅谈Deref<Target = T>, AsRef<T> 等差异
向HashMap<K, V>添加新【键-值对】和从HashMap<K, V>检索已有的【键-值对】。
MikeLoveRust
2022-11-28
3310
【Rust日报】2022-08-02 hypher 将30种自然语言塞到1.1M空间内
作者正在开发一个名为Typst的纯rust实现的 LaTeX替代品。为了获得与 LaTeX 相同的解析结果,Typst 需要对连字符的支持。在 docs.rs上的快速搜索显示,真正相关的库只有一个,恰好就叫 hyphenation。这个库有很多功能,支持很多语言。然而,它也有相当大的二进制开销(2.8MB)。虽然可以在运行时加载模式文件,但单独分发模式文件显然比直接嵌入它们要复杂得多。除此之外还遇到了一些因为频繁加载导致的性能问题,
MikeLoveRust
2022-11-28
2470
【Rust日报】2021-12-29 infinitree - 嵌入式加密数据库
ReadMore:https://github.com/symmetree-labs/infinitree
MikeLoveRust
2021-12-31
4320
【Rust每周一库】lazy_static - 动态生成静态变量
lazy_static可以动态产生全局的静态变量,而lazy则表示在变量第一次调用时才对变量进行初始化的。有了这个库就可以产生看起来静态的堆变量,比如Vec,HashMap之类。引入库:
MikeLoveRust
2020-11-06
3.8K1
一起学Rust-实战leetcode(二)
这是来源于leetcode的一道题 “无重复字符的最长子串”,我们使用Rust来实现。
MikeLoveRust
2019-09-25
7310
一起学Rust-实战leetcode(一)
先理清思路,首先根据题目,不使用重复元素,假设只存在一个正确答案,最简单直接的思路,就是两层循环,逐个相加判断是否等于target的值,如果相等,则返回相应的索引数字。
MikeLoveRust
2019-09-19
6530
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档