gpt4 book ai didi

c++ - 在 C++ Core Guidelines Per.4 中,为什么坏示例旨在更快?

转载 作者:行者123 更新时间:2023-12-01 14:05:05 26 4
gpt4 key购买 nike

我正在阅读 this最近,其中指出:

Don’t assume that complicated code is necessarily faster than simple code.


代码复制如下:
例如,好
// clear expression of intent, fast execution

vector<uint8_t> v(100000);

for (auto& c : v)
c = ~c;
例如,坏
// intended to be faster, but is often slower

vector<uint8_t> v(100000);

for (size_t i = 0; i < v.size(); i += sizeof(uint64_t)) {
uint64_t& quad_word = *reinterpret_cast<uint64_t*>(&v[i]);
quad_word = ~quad_word;
}
我不确定坏例子的目的是什么,为什么是 旨在更快 ?
为什么会这样 事实上往往更慢 ?

最佳答案

通过将指针转换为 64 位整数并对该整数执行按位运算,您可以将 C++ 代码执行的运算次数减少 8 倍。也就是说,所做出的假设是性能受用 C++ 代码编写的操作数。

关于c++ - 在 C++ Core Guidelines Per.4 中,为什么坏示例旨在更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63276055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com