Gosper's Hack
二进制枚举技巧,快速找到下一个想要位的集合 Ref 1. 二进制枚举 / Gosper’s Hack 2. 【力扣双周赛 86】Gosper’s Hack | 单调队列 | LeetCode 算法刷题 3. 分享|从集合论到位运算,常见位运算技巧分类总结!
二进制枚举技巧,快速找到下一个想要位的集合 Ref 1. 二进制枚举 / Gosper’s Hack 2. 【力扣双周赛 86】Gosper’s Hack | 单调队列 | LeetCode 算法刷题 3. 分享|从集合论到位运算,常见位运算技巧分类总结!
xmake的设计相较于ninja,cmake,make而言,我觉得他没有发明新的语法,都是复用lua的语法,虽然从core里看对lua做了一定的扩展。gn其实也是这样,感觉还是在遵循python3的语法,虽然也做了自己的扩展。 学习xmake的代码,目前主要收集资料,嘻嘻 ./xmake/ ├── actions # 内建的一些基础task,用于基本的构建安装等操作 ├── cor...
spdlog的代码走读,记录一下用到的参考资料 logger订制程度看起来是ok的,wiki-custom-format上写的, 我感觉有线程号 + 时间 + 文件行其实我就够了。 日式文件的类型扩展充分,wiki-sinks里面也放了很多种,我觉得基本有文件rotate就够了。 支持的日志模式,同步/异步,阻塞/非阻塞,单线程/多线程 spdlog主要由logger(也包括asyn...
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...