cpu operation
cpu的的耗时相关,主要其实就几个方面 ALU和FPU其实消耗还好,但是混合int和float的使用的时候不是无损的,不如分开用 L3 read的消耗和虚函数调用其实是差不多的,没我想象中那么垃圾 __builtin_expect()在modern intel cpu上看起来没那么有用,因为都是动态预测的了 看...
cpu的的耗时相关,主要其实就几个方面 ALU和FPU其实消耗还好,但是混合int和float的使用的时候不是无损的,不如分开用 L3 read的消耗和虚函数调用其实是差不多的,没我想象中那么垃圾 __builtin_expect()在modern intel cpu上看起来没那么有用,因为都是动态预测的了 看...
使用火焰图做调优,使用火焰图快速定位性能问题,然后用一下systemtap REF 程序员精进之路:性能调优利器–火焰图 FlameGraph Blazing Performance with Flame Graphs SystemTap新手指南 Linux Perf 简单试用 ...
看起来random_device比较恶心,c++的random可能不是你看起来的那么light weight c++的random_device的构造代码 random_device::random_device(const string& __token) { if (__token != "/dev/urandom") __throw_system_error(E...
一堆摸鱼blog LTO The dangers of releasing the last strong reference from within its own callback The power of ref-qualifiers 这个比较有意思,零时对象引用->for range loop, 针对左右值给...
c++11 singleton 在C++11标准中,局部静态变量的初始化是线程安全的,这就意味着在多线程环境中可以保障局部静态变量只会被初始化一次,而不会引发竞态条件问题。 因此11支持的一个比较简单的写法, 这种由编译器保证的单例 Singleton& get() { static Singleton instance; return instance; } // 或...
c++的union,单纯考虑c++11之后的union。c++11之前的union,只能是pod类型。 c++11之后允许有非pod类型的union,但是有一些限制。 联合体可以拥有成员函数(包含构造函数和析构函数),但不能有虚函数。 联合体不能有基类且不能用作基类。 联合体不能拥有引用类型的非静态数据成员。 C...
全平台动态库导出的方法,在Ref1里推荐的方法使用ld script。可以细看一下 Linux平台动态库符号导出 linux下有几种符号导出的方式 使用attribute + visibility控制符号可见性 可以设置默认的visibility为hidden,然后针对要导出的接口的课件行设置为default,这样就可以控制符号的可见性了。寻常为了兼容性,一般会导出c的符号,如果用c...
Anatomy of a Program in Memory How The Kernel Manages Your Memory Page Cache, the Affair Between Memory and Files Cache: a place for concealment and safekeepin...
mimalloc的学习 Intro mimalloc, 19年微软开源的一个malloc内存分配库,代码量不大,目前看起来比较适合学习 有一篇比较完善的paper, Mimalloc: Free List Sharding in Action, 目前看man page也比较完善。 0 关于malloc和为什么 操作系统虽然提供了mmap和brk之类的系统调用来做内存的申请,但是一般...
在不同-Ox情况下,编译器的优化选项。不能以官网为准,要实际看gcc的–help Ref 从一个crash问题展开,探索gcc编译优化细节