欢送2012

新年快乐!2012年就要过去了,本月看代码为主,少动手了,分享两篇文章给大家:

第一篇是varnish作者Poul henning写的,题为Notes from the Architect,作者的观点可以总结为三点:

  • 相信虚拟存储系统,不要手动进行内存分页管理,而是依赖虚存系统做这件事。不要和虚存系统作对。
  • 减少内存的访问次数,最小化多核心之间对于cache的争夺。
  • 合理调度线程,按最近工作时间来安排,尽可能保证cache已处于热身状态。

另一篇是LuaJit的作者Josh Haberman在邮件列表里提到的,为什么手写的汇编码会比编译器的好。作者着重讨论的,是编译器的主循环实现。由于编译器难以预测数以百计的可执行路径中,那个是快速路径,那个是慢速路径,走哪一个路径的概率比较大,所以无法很好的生成优化的汇编码。由于条件分支判断失败引致的惩罚较大,因此手写汇编码的确有可能做得比编译器好。

 

这两篇文章的启迪在于,现代意义上的编程,已经不再是单纯业务逻辑的考虑,而要通盘考虑计算机系统的储存器结构和CPU指令优化。看来还是要看底层一点的东西了。

posted on 2012-12-31 23:47  lifehacker  阅读(201)  评论(0编辑  收藏  举报

导航