博客
分类
标签
归档
友链
关于
Dark Mode
博客
分类
标签
归档
友链
关于
Dark Mode
Mens et Manus
Redis赏析
Abstract主要记录Redis整体架构及其巧妙的设计。 主要结构体 sds(simple dynamic string) dict set: TODO zset list 其他: zmalloc TODO: 主要lib(抽象) redis object ae 主要亮点 epoll实现的异步库 渐进式rehash 流式read, write redis Redissd...
2023-04-05
Read More
锁锁速查
Cheat sheet 枚举各种情况 普通自旋锁 缓存与不可扩展 MCS锁(排队锁) 可扩展但开销更高 QSpinLock spinlock + MCS lock 以上都没考虑numa的影响 Delegation Lock(代理锁) 同类临界区操作都发送同一个NUMA中执行 解决了NUMA带来的不同性能问题 以上都没考虑异构核的影响 LibASL可扩展锁(乱序重排锁) 不...
2023-03-25
Read More
Arch Linux 坑坑速查表
Arch Linux 坑坑速查表.Xauthority lock timeout用strace xauth list可以看到操作具体流程, 主要就是.Xauthority可能是root用户所有了, 及其.Xauthority-*的冲突 删掉.Xauthority-*, 把.Xauthority改成本用户。删掉.Xauthority也可以试试 N卡驱动 装完可以使用mkinitcpio -P手...
2023-01-01
Read More
一些奇妙的bit操作
一些奇妙的bit操作学习过程中看到 + 推理出的一些奇妙的位运算相关的操作。顺序尽量有一定推理逻辑, 尽量分组写在一起 听说”hacker’s delight”这本书专门讲这些, 但我还没时间看 assert 默认从右往左是从低位到高位, aka 右边的末尾 +1的效果: 从右到左第一个0, 按位取反(不够加要一直进位) -1的效果: 从右到左第一个1, 按位取反(不够减要一直...
2022-12-29
Read More
通过例子理解CUDA driver api和CUDA PTX
通过例子理解CUDA driver api和CUDA PTXcuda程序经过编译器编译后后添加很多对cuda driver api的调用, 这样用户就不用关心gpu module管理, context管理, kernel管理等的细节了。 不过我们就是想要知道细节, 所以这篇文章通过直接使用cuda driver api加载cuda ptx执行的方式体会其中的细节。 我们的目标是将下面这个cu...
2022-12-28
Read More
通过javascript体会函数式编程
Abstract 虽然像递归, 但是你要用functional的眼观看待 对js做7点限制, 从而体会函数式 no loops no if single return no side-effects to outside world no assignments in functinos no arrays only 0 or 1 argument Pure function, ...
2022-12-18
Read More
使用OCI构建一个容器镜像
使用OCI构建一个容器镜像 不同docer启动容器, 了解什么是OCI https://www.youtube.com/watch?v=hhQ6uc2bp2s 什么是OCI Container != Docker 标准, 类似所有浏览器都使用html/js/css一样, 有了标准后各种容器实现都可以使用根据标注构建的镜像 https://github.com/opencontainer...
2022-12-09
Read More
RabinKarp(RK)算法
RK算法 O(n) go语言官方库(大部分情况) 其实朴素的字符串匹配算法(一个一个比对), 在概率上也是O(n)的。因为出现连续字符的情况是比较少的(e.g. aaaaab) RK算法的基本思路: 先用哈希做一个粗略比对。当然是存在一定误判的, 当哈希匹配时再使用朴素算法判断。如此一来每次字符串比对就变成了一个整数的比对。 但是问题的关键是, 哈希算法的开销的O(n)的, 我们要考虑如何...
2022-12-05
Read More
rust程序冲突tips
rust程序冲突tips对这篇文章的二次加工和翻译。 问题我们想要将程序的部分功能抽象成一个”管理者”。 于是我们会构造一个结构体, 它内部有一系列”被管理元素”和一些状态元素。如: 12345678910111213141516use std::sync::mpsc::Sender;struct MyStruct { widgets: Vec<MyWidget>, ...
2022-11-11
Read More
rust中智能指针box的简单实现
rust中智能指针box的简单实现Abstractbox是rust中最基本的一种智能指针, 所谓智能能自动解引用自动释放。这三个基本功能分别是通过实现Deref, DerefMut, Drop三个trait赋能的。 Deref和DerefMut实现了智能指针的自动解引用。简单的说是自动解引用直到类型匹配(如果一路都满足Deref trait),即如果需要的类型是&T而得到的类型是Bo...
2022-11-10
Read More
Previous
4 / 25
Next