gpt4 book ai didi

c++ - 位运算会导致程序运行变慢吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:53 25 4
gpt4 key购买 nike

我正在处理一个需要处理大量数据的问题。目前它的值表示为 unsigned int。我知道实际值不会超过 1000 的限制。

问题

  1. 我可以使用unsigned short 来存储它。这样做的一个好处是它将使用更少的存储空间来存储值。性能会受到影响吗?

  2. 如果我决定将数据存储为short,但所有调用函数都使用int,那么在存储或提取时我需要在这些数据类型之间进行转换值。性能会受到影响吗?性能损失会很大吗?

  3. 如果我决定不使用 short,而是将 10 位打包到一个 unsigned int 数组中。与之前的情况相比,这种情况会发生什么?

最佳答案

这一切都取决于架构。位域通常较慢,但如果您能够显着减少内存使用量,您甚至可以获得性能,因为更好的 CPU 缓存和类似的东西. short 也是如此(尽管它在任何情况下都不是戏剧性的)。

最好的方法是让您的源代码能够轻松切换表示形式(当然是在编译时)。然后,您将能够在您的特定情况中测试和分析不同的实现,只需更改一个#define

此外,不要忘记过早的优化规则。先让它发挥作用。如果结果证明它很慢/不够快,只有然后尝试加快。

关于c++ - 位运算会导致程序运行变慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806801/

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