阅读了 Papers-We-Love caching 中的 LFU, 尝试动手实现。
An O(1) algorithm for implementing the LFU cache eviction scheme by Prof. Ketan Shah, Anirban Mitra, Dhruv Matani
[阅读全文]阅读了 Papers-We-Love caching 中的 LFU, 尝试动手实现。
An O(1) algorithm for implementing the LFU cache eviction scheme by Prof. Ketan Shah, Anirban Mitra, Dhruv Matani
[阅读全文]Go 中的 defer
非常实用。今天尝试在 Rust 中模拟 defer
。
Linux 在 5.1 引入了 io_uring
,据说性能接近 SPKD。
目前 Linux 已更新到 5.6.6 ,不妨尝试一下 io_uring
。
6.824 课程的 Lab2 是实现 Raft,分为 2A、2B、2C 三部分。 2A 实现 leader 选举与心跳;2B 实现日志复制;2C 实现持久化。
[阅读全文]背景:中间件 A 产生的数据,需在后续的其他中间件、Handler 中用到。
例如:Handler 中使用 Auth
中间件从 token 中解出的 user_id
。
数据结构对齐是什么?维基百科对其有如下定义:
[阅读全文]数据结构对齐是代码编译后在内存的布局与使用方式。包括三方面内容:数据对齐、数据结构填充(padding)与包入(packing)。 内存地址a被称为n字节对齐,当a是n的倍数(n应是2的幂)。 一次内存访问被称为对齐的,当被访问的数据长度为n 字节且该数据地址为n字节对齐。如果内存未对齐,称作misaligned。显然,字节访问总是对齐的。 内存指针是对齐的,如果它所指的数据是对齐的。指向聚合数据(aggregate data,如struct或数组)是对齐的,当且仅当它的每个组成数据是对齐的。