提供一些很好的写入思路
https://zhuanlan.zhihu.com/p/660586510
通过批量写入的方式,减少写&读之间的切换流程
-fno-omit-frame-pointer 是 GCC 和 Clang 编译器的编译选项之一,用于控制编译器在生成可执行文件时是否省略帧指针(frame pointer)。
帧指针是一种在函数调用过程中用于定位函数栈帧的指针。它指向当前函数的栈帧底部,通过它可以访问局部变量、函数参数和调用其他函数时需要保存的寄存器等信息。
默认情况下,GCC 和 Clang 编译器会尝试优化生成的代码,其中一个优化是省略帧指针。这样可以节省额外的指令和内存访问,从而提高代码的执行效率。但是,在某些情况下,需要使用帧指针来进行调试或者其他目的。
-fno-omit-frame-pointer 编译选项用于禁止编译器省略帧指针的优化。当使用该选项时,编译器将生成带有帧指针的代码,以便在调试或其他需要时可以准确地追踪函数调用栈。
需要注意的是,启用帧指针可能会导致生成的代码稍微变慢,并增加一些额外的代码和内存开销。因此,该选项通常在调试期间使用,而在生产环境中可能不需要启用。
在编译时使用 -fno-omit-frame-pointer 选项,可以确保生成带有帧指针的代码,以便进行调试和栈追踪等操作。
alignas(4) 有些 struct不对齐的情况下,考虑强制对齐
考虑加入 查询最后一个 1的算法,来提高 steal 的准确率
-fno-omit-frame-pointer 是 GCC 和 Clang 编译器的编译选项之一,用于控制编译器在生成可执行文件时是否省略帧指针(frame pointer)。
帧指针是一种在函数调用过程中用于定位函数栈帧的指针。它指向当前函数的栈帧底部,通过它可以访问局部变量、函数参数和调用其他函数时需要保存的寄存器等信息。
默认情况下,GCC 和 Clang 编译器会尝试优化生成的代码,其中一个优化是省略帧指针。这样可以节省额外的指令和内存访问,从而提高代码的执行效率。但是,在某些情况下,需要使用帧指针来进行调试或者其他目的。
-fno-omit-frame-pointer 编译选项用于禁止编译器省略帧指针的优化。当使用该选项时,编译器将生成带有帧指针的代码,以便在调试或其他需要时可以准确地追踪函数调用栈。
需要注意的是,启用帧指针可能会导致生成的代码稍微变慢,并增加一些额外的代码和内存开销。因此,该选项通常在调试期间使用,而在生产环境中可能不需要启用。
在编译时使用 -fno-omit-frame-pointer 选项,可以确保生成带有帧指针的代码,以便进行调试和栈追踪等操作。
实测下来,效果并不好