红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构。它在1972年由鲁道夫·贝尔发明,被称为“对称二叉B树”,它现代的名字源于利奥尼达斯·J·吉巴斯和罗伯特·塞奇威克于1978年写的一篇论文。红黑树的结构复杂,以至于有些个别公司拿它当做面试题现场实现,但它的操作有着良好的最坏情况运行时间,并且在实践中高效:它可以在O(log^n)
时间内完成查找、插入和删除。
“测试 Rust 的 I/O 性能”
我们将尝试使用 Rust 来比较读取文件的各种不同方法。除了 wc -l
之外,我们将使用 criterion
对每个函数运行 10 次,然后取平均值。
以下基准测试的代码存放在 Benchmark code for Linux IO using Rust。
在以下代码中,BUFFER_SIZE 为 8192,NUM_BUFFERS 为 32。
原文: # Linux File IO using Rust](https://opdroid.org/rust-io.html)) by opdroid
重复了很多次,我终于不再忍了
虽然我不做管理系统,但是在项目中和数据库打交道还是比较多的,经常会从数据库中 (比如 Mysql 、ClickHouse 等) 查询一些记录,偶尔也会写入一些数据,但是不多。
Sqids: 简短唯一ID生成器
Sqids(发音为squids
, 鱿鱼)是一个开源库,允许您从数字中生成简短的唯一且看起来随机的标识符, 而且这些ID是URL安全的,你可以同时编码几个数字, 也可以剔除常见的脏话或者政治敏感的单词。你可以把它想象成一个十进制到十六进制的转换器,但它还具备一些额外的功能。
比如:https://example.com/Lqj8a0
先前它叫做Hashids
, 但是由于商标问题,我不得不更改名称。Sqids是Short Quick Unique Identifiers
的缩写。
Rust Tokio 任务取消模式
原文: Rust tokio task cancellation patterns
我最近一直在尝试重新学习 Rust。开始时进展有些缓慢,但我觉得我终于开始感受到累积效应在起作用了。也许这只是我的大脑在跟我开玩笑,但现在写 Rust 时我感觉比几周前轻松多了。
Go heap profile 怎么了
Go heap profile 是尝尝用来检查内存泄露和内存占用大问题的问题的手段,而且非常惯用。
而且,我们也经常创建两个间隔较长的 heap profile, 获取它们的差值来方便查看内存泄露: Hi, 使用多年的go pprof检查内存泄漏的方法居然是错的?!
今天,度厂的一位同学提出了一个很有意思的案例,让我们对 heap profile 有了更深的理解。
Go语言编程技巧 1.0 发布了
经过和众多Gopher的努力,Go语言编程技巧 1.0 版本终于发布了。这是一个Go语言编程技巧的集合,涵盖了Go语言的各个方面,包括语法、并发、性能、工具、库等等。这个项目的目的是帮助Go语言开发者更好地理解Go语言,提高Go语言编程技巧。
Go语言编程技巧和参与开源项目
Go语言编程技巧 一个翻译项目, 主要翻译Phuong Le的 Golang Tips系列。
翻译后的网站是: https://colobu.com/gotips/