mirror of
https://gitee.com/openharmony/third_party_benchmark
synced 2024-12-04 05:35:40 +00:00
207b9c7aec
* Improve State packing: put important members on first cache line. This patch does a few different things to ensure commonly accessed data is on the first cache line of the `State` object. First, it moves the `error_occurred_` member to reside after the `started_` and `finished_` bools, since there was internal padding there that was unused. Second, it moves `batch_leftover_` and `max_iterations` further up in the struct declaration. These variables are used in the calculation of `iterations()` which users might call within the loop. Therefore it's more important they exist on the first cache line. Finally, this patch turns the bool members into bitfields. Although this shouldn't have much of an effect currently, because padding is still needed between the last bool and the first size_t, it should help in future changes that require more "bool like" members. * Remove bitfield change for now * Move bools (and their padding) to end of "first cache line" vars. I think it makes the most sense to move the padding required following the group of bools to the end of the variables we want on the first cache line. This also means that the `total_iterations_` variable, which is the most accessed, has the same address as the State object. * Fix static assertion after moving bools |
||
---|---|---|
.. | ||
Modules | ||
AddCXXCompilerFlag.cmake | ||
benchmark.pc.in | ||
Config.cmake.in | ||
CXXFeatureCheck.cmake | ||
GetGitVersion.cmake | ||
gnu_posix_regex.cpp | ||
HandleGTest.cmake | ||
llvm-toolchain.cmake | ||
posix_regex.cpp | ||
std_regex.cpp | ||
steady_clock.cpp | ||
thread_safety_attributes.cpp |