dynamic load dll
动态库热加载指的是在程序运行时,动态地加载动态库,从而达到不停止程序的情况下,更新程序的功能。 C++ 程序在运行时有两种方式加载动态连接库:隐式链接和显式链接 隐式链接就是在编译的时候使用 -l 参数链接的动态库,进程在开始执行时就将动态库文件映射到内存空间中 显式链接使用libdl.so库的API接口在运行中加载和卸载动态库,主要的API有 dlo...
动态库热加载指的是在程序运行时,动态地加载动态库,从而达到不停止程序的情况下,更新程序的功能。 C++ 程序在运行时有两种方式加载动态连接库:隐式链接和显式链接 隐式链接就是在编译的时候使用 -l 参数链接的动态库,进程在开始执行时就将动态库文件映射到内存空间中 显式链接使用libdl.so库的API接口在运行中加载和卸载动态库,主要的API有 dlo...
主要资料是mem barrier,在ref-1。 如果完整看过perfbook的话,不用再看了,paul真的是神人,RCU的作者,修了linux内核1000多个多线程bug的猛男 REF Memory Barriers: a Hardware View for Software Hackers 内存屏障Memory Barrier: a Hardwar...
mutex, spinlock, semaphore, RCU一次看一下 mutex mutex有一票比较好的文章,我这里搬运一下。 Mutex: 如果一个线程试图获取一个 mutex,但是没有成功,因为 mutex 已经被占用, 它将进入睡眠,让其他进程运行,直到 mutex 被其他进程释放. 这就意味着Mutex将使得线程睡眠,然后再通过notify唤醒它们,两者都是开销比较大的...
二进制枚举技巧,快速找到下一个想要位的集合 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, 针对左右值给...