Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

提供一些很好的写入思路 #247

Open
ChunelFeng opened this issue Oct 12, 2023 · 4 comments
Open

提供一些很好的写入思路 #247

ChunelFeng opened this issue Oct 12, 2023 · 4 comments

Comments

@ChunelFeng
Copy link
Owner

https://zhuanlan.zhihu.com/p/660586510

通过批量写入的方式,减少写&读之间的切换流程

@ChunelFeng
Copy link
Owner Author

-fno-omit-frame-pointer 是 GCC 和 Clang 编译器的编译选项之一,用于控制编译器在生成可执行文件时是否省略帧指针(frame pointer)。

帧指针是一种在函数调用过程中用于定位函数栈帧的指针。它指向当前函数的栈帧底部,通过它可以访问局部变量、函数参数和调用其他函数时需要保存的寄存器等信息。

默认情况下,GCC 和 Clang 编译器会尝试优化生成的代码,其中一个优化是省略帧指针。这样可以节省额外的指令和内存访问,从而提高代码的执行效率。但是,在某些情况下,需要使用帧指针来进行调试或者其他目的。

-fno-omit-frame-pointer 编译选项用于禁止编译器省略帧指针的优化。当使用该选项时,编译器将生成带有帧指针的代码,以便在调试或其他需要时可以准确地追踪函数调用栈。

需要注意的是,启用帧指针可能会导致生成的代码稍微变慢,并增加一些额外的代码和内存开销。因此,该选项通常在调试期间使用,而在生产环境中可能不需要启用。

在编译时使用 -fno-omit-frame-pointer 选项,可以确保生成带有帧指针的代码,以便进行调试和栈追踪等操作。

@ChunelFeng ChunelFeng changed the title 提供一个很好的写入思路 提供一些很好的写入思路 Oct 13, 2023
@ChunelFeng
Copy link
Owner Author

alignas(4) 有些 struct不对齐的情况下,考虑强制对齐

@ChunelFeng
Copy link
Owner Author

考虑加入 查询最后一个 1的算法,来提高 steal 的准确率

@ChunelFeng
Copy link
Owner Author

-fno-omit-frame-pointer 是 GCC 和 Clang 编译器的编译选项之一,用于控制编译器在生成可执行文件时是否省略帧指针(frame pointer)。

帧指针是一种在函数调用过程中用于定位函数栈帧的指针。它指向当前函数的栈帧底部,通过它可以访问局部变量、函数参数和调用其他函数时需要保存的寄存器等信息。

默认情况下,GCC 和 Clang 编译器会尝试优化生成的代码,其中一个优化是省略帧指针。这样可以节省额外的指令和内存访问,从而提高代码的执行效率。但是,在某些情况下,需要使用帧指针来进行调试或者其他目的。

-fno-omit-frame-pointer 编译选项用于禁止编译器省略帧指针的优化。当使用该选项时,编译器将生成带有帧指针的代码,以便在调试或其他需要时可以准确地追踪函数调用栈。

需要注意的是,启用帧指针可能会导致生成的代码稍微变慢,并增加一些额外的代码和内存开销。因此,该选项通常在调试期间使用,而在生产环境中可能不需要启用。

在编译时使用 -fno-omit-frame-pointer 选项,可以确保生成带有帧指针的代码,以便进行调试和栈追踪等操作。

实测下来,效果并不好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant