技术
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层的接口被模块[……]
TCP-Jersey拥塞控制介绍
介绍
TCP-Jersey拥塞控制算法在中文世界里的描述非常的少,有点好奇信号和丢包共同控制的算法是怎样的,就翻译了这篇论文,链接在最后。
传统TCP拥塞控制
传统TCP的拥塞控制算法是使用拥塞控制窗口来实现的,TCP发送端在发送时除了要兼容接收端的接收窗口,自己这边的发送窗口,还需要考虑拥塞控制窗[……]
Unix编程艺术 读书笔记
1 哲学
- 性能—时间的指数曲线对软件开发过程所引发的结果,就是每过18个月,就有一半的知识会过时。Unix并不承诺让你免遭此劫,只是让你的知识投资更趋稳定
- 策略相对短寿,而机制才会长存
- 对于程序员和开发人员来说,如果完成某项任务所需要付出的努力对他们是个挑战却又恰好还在力所能及的范围内,他们就会觉[……]
Python高性能编程 读书笔记
主题
在当python的函数越短,通常意味着性能越高!
这不是笑话,在不改变算法的情况下,同一个功能是一定存在一个最短指令集的,当python代码变短意味着指令码变少,那多的指令码就在底层以CPU指令码的形式转移了。
这叫做同算法指令集数量守恒。 ——本人
第二章 通过性能分[……]
关于vim的搜索功能
几个tag
调查了好一阵子,总算弄清楚了几个东西的差别,简单记一下,几个tag:
- ctags,vim用的
- etags,emacs用的
- cscope,生成的索引相比上面两个索引,信息会多一些,并且包含了一个搜索的指令,可以搜索函数在哪里被调用,以及可以做全局搜索,但是仅限于C/C++
- gtags[……]
一本书读懂TCP/IP 读书笔记
TCP/IP是什么
互联网包含因特网,因特网包含万维网。
物理层
物理层解决最基础的传送通道,涉及问题主要是建立、维护和释放物理链路所需的机械的、电气的/光学的、功能的和规程的特性
数据链路层
在相邻的网络节点之间提供简单的、传输以帧为单位的数据,同时它还负责数据链路的[……]