归档
善良比聪明更重要
01
30
RPC 系列(二十二):brpc 的定时器 RPC 系列(二十二):brpc 的定时器
在几点几分做某件事是 RPC 框架的基本需求,这件事比看上去难。 让我们先来看看系统提供了些什么:posix 系统能以 signal 方式告知 timer 触发,不过 signal 逼迫我们使用全局变量,写 async-signal-saf
2024-01-30
23
16
RPC 系列(二十):brpc 的内存管理 RPC 系列(二十):brpc 的内存管理
内存管理总是程序中的重要一环,在多线程时代,一个好的内存分配大都在如下两点间权衡: 线程间竞争少。内存分配的粒度大都比较小,对性能敏感,如果不同的线程在大多数分配时会竞争同一份资源或同一把锁,性能将会非常糟糕,原因无外乎和 cache 一
2024-01-16
09
RPC 系列(十九):原子操作指令的选择 RPC 系列(十九):原子操作指令的选择
我们都知道多核编程常用锁避免多个线程在修改同一个数据时产生 race condition。当锁成为性能瓶颈时,我们又总想试着绕开它,而不可避免地接触了原子指令。但在实践中,用原子指令写出正确的代码是一件非常困难的事,琢磨不透的 race c
2024-01-09
02