《BOLT: A Practical Binary Optimizer for Data Centers and Beyond》 CGO 2019
《Ispike: A Post-link Optimizer for the IntelR ItaniumR Architectur》 CGO 2004
Helping compiler help you
现在数据中心跑的程序二进制文件普遍都比较大而且代码逻辑比较复杂,因此编译过程的优化在很多情况下能够显著提升性能。编译优化是一种 helping compiler help you的方式。
编译优化常见的几种优化技术...
搭建Linux内核调试环境
这篇文章介绍下在MacOSX如何用gdb + vmware的方式调试Linux内核。
一:安装Vmware Fusion
二:安装gdb
注意这里需要安装高版本的gdb,这里安装的是8.2版本
123456
wget http://ftp.gnu.org/gnu/gdb/gdb-8.2.tar.gztar xf gdb-8.2.tar.gzcd gdb-8.2./configure --build=x86_64-apple-darwin14.0.0 --target=x86_64-vfs-lin...
代码整洁之道 读书笔记
Chapter 1 整洁代码
Lebanc's Law: later equals never.
Chapter 2 有意义的命名
Chapter 3 函数
每个函数一个抽象层级
Chapter 4 注释
Chapter 5 格式
Chapter 6 对象和数据结构
Chapter 7 错误处理
Chapter 8 边界
Chapter 9 单元测试
Chapter 10 类
Chapter 11 系统
Chapter 12 迭进
Chapter 13 ...
人月神话 读书笔记
最近听到一个度量软件复杂度的概念,叫decoupling level,想起来以前买过一本《人月神话》,这两天把它从书堆里面翻出来了。虽然书有300多页,不过里面大部分观点,我想从业者应该都认可,因此书里的新东西并不多。
Chapter 1: 焦油坑
职业的乐趣:工作的创造性;产品有价值;零件正常运转的魅力;持续学习的快乐。
职业的苦恼:追求完美;他人设定目标;寻找bug是痛苦的。
Chapter 2: 人月神话
在很多项...
Deep Class
最近看了个有趣的talk:"A Philosophy of Software Design" by John Ousterhout。
如果要选一个概念,贯穿整个计算机系统,应该选哪个呢?
John Ousterhout问过Donald Knuth,Knuth给的答案是layers of abstraction。
John Ousterhout自己觉得是problem decomposition,要注意隔离复杂度。
LockFree数据结构的内存回收性能测试 阅读笔记
最近在搞性能优化,读了一篇挺有意思的相关论文。
Performance of memory reclamation for lockless synchronization
这篇论文测试了几种LockFree数据结构的内存回收性能和简单的分析。
Split-Order Hash基本原理
之前阅读论文并实现了一个可扩展的哈希表,已经在生产环境使用。这里简单描述一下思路和一些经验教训,详细的实现可以参见论文。
gdb调试技巧-持续更新
gdb的一些调试技巧,包括打印格式、断点、gdb脚本编写和一些经验。
WordPress公式范例
没想到wordpress的latex插件支持的这么好。
写了几个例子,右键"Show Math As" "Tex Commands"可以看原始文本。
Why Functional Programming Matters 阅读笔记
本文是 Why Functional Programming Matters(为什么函数式编程很重要)的阅读笔记,用相对通俗的语言解读了这篇论文,并对我觉得重要的一些点做了一些解释。