gpt4 book ai didi

c++ - 缓存局部性能

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:50 24 4
gpt4 key购买 nike

如果我有一个 C 或 C++ 程序,其中我在整个程序中使用 20 个整数,创建一个大小为 20 的数组来存储整数然后为每个数字创建别名是否会提高性能?

这是否会改善缓存局部性(而不是仅仅创建 20 个普通整数),因为这些整数将作为整数数组的一部分一起加载到缓存中(或者至少,提高这种可能性)?

最佳答案

问题是如何为它们分配空间?我怀疑您只是在代码中到处随机执行 new int 20 次。如果它们是局部变量,那么它们将进入堆栈并被缓存。

主要问题是这值得麻烦吗?首先尝试以可读且优雅的方式编写您的程序,然后尝试消除主要瓶颈,并且只有在开始搞乱微优化之后。如果您要处理 20 个整数,它们本质上不应该是数组吗?

还是理论题?如果是,那么是的,数组可能会比内存中的 20 个随机区域缓存得更好。如果这是一个实际问题,那么我怀疑这是否真的很重要,除非你正在编写超临界性能代码,即使这样微优化也是最后要处理的事情。

关于c++ - 缓存局部性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977845/

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