cpu operation
cpu的的耗时相关,主要其实就几个方面
ALU和FPU其实消耗还好,但是混合int和float的使用的时候不是无损的,不如分开用
L3 read的消耗和虚函数调用其实是差不多的,没我想象中那么垃圾
__builtin_expect()在modern intel cpu上看起来没那么有用,因为都是动态预测的了
看起来improve data locality重要的一批,ref-2里可以看看
cas不是想象中的好,尤其是多cpu的时候ref-3里
针对TLB,还是老生常谈的三板斧:1. local mem, 2. huge page, 3. 关了ASLR(Address Space Layout Randomization, 但不安全)
c++的一些calls,gcc给你__attribute__((always_inline))这个选项了,direct func call相比展开就是会多耗cycle,但这个其实也depends,应该不是可以给你xjb搞的
virtual call(indirect)的优化,可以考虑template,比如CRTP, 没看到例子
kernel call太贵了,太贵了….
c++的异常,说着抛之前其实zero cost,但是抛的时候5k+ cpu cycles…
内存分配,用一个好的malloc, 可以配合之前的mimalloc看看
REF
This post is licensed under CC BY 4.0 by the author.