技术
了解一下boost的fiber
fiber是纤程,用户级纤程,在用户层提供调度管理器,可以在系统线程上切换纤程,它主要的好处:
- 切换非常快,按照boost的数据,快100倍[1];
- 纤程访问父线程的数据不需要加锁,因为不具备竞争;
- 基于完全同步的写法来实现的fiber阻塞和切换;
引用
文件系统对比 btrfs vs zfs
btrfs vs zfs
btrfs是一个支持写时复制的文件系统,同时zfs是另外一个也被广泛使用的文件系统。
btrfs使用红黑树,zfs使用另外一套技术,zfs在大型机器上似乎是被广泛使用,处理大型文件的性能上优于btrfs,并且存储文件没有上限,btrfs文件数量上有上限,同时处理小文件更快。[……]
python 源码路径组织
python源码路径组织:
- Include: 包含了python提供的头文件,如果需要自己编写扩展python,需要用到这里的头文件;
- Lib: 包含python自带的标准库,都是用python写的。
- Modules: 包含所有C语言编写的模块,都是对速度要求比较高的模块。
- Parser: 包含解[……]
C++ 继承和虚拟继承的内存分布
菱形继承
菱形继承:菱形继承的问题在于数据冗余和二义性。
将子类转化成爷爷类的时候会报错,因为不知道要转化到哪个类上去,这里需要加入static_cast才行。爷爷类会在两个父类中都被定义,解决的办法是:虚拟继承。
虚拟继承让被菱形继承的父类只会存在一份,消除数据冗余,那这里就得问一下,内存是如何布[……]
现代C++教程 读书笔记
习题答案:https://github.com/changkun/modern-cpp-tutorial/tree/master/exercises
序言
本文传统C++ 是指C++ 98及之前的标准。
C++ 14/17是对C++ 11的重要补充和优化;而C++ 20则将这门语言领进了现代化的大门[……]
TCP拥塞控制算法的实现
基于对google提出的bbr算法源码阅读的一些学习:
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp_bbr.c#L39
并不详细介绍bbr的原理,也不逐行解释
拥塞接口
TCP底层的拥塞控制通过若干个定义在TCP层的接口被模块[……]