gpt4 book ai didi

c++ - 代码膨胀何时开始对性能产生显着影响?

转载 作者:可可西里 更新时间:2023-11-01 15:30:40 27 4
gpt4 key购买 nike

我希望在我的一个 OpenGL 项目中大幅转向模板,主要是为了乐趣和学习经验。我计划在执行此操作时仔细观察可执行文件的大小,以查看发生了多少臭名昭著的膨胀。目前,当我喜欢速度时,我的发布版本的大小约为 580 KB,当我喜欢大小时,约为 440 KB。

是的,这是一个很小的项目,事实上,即使我的可执行文件膨胀到其大小的 10 倍,它仍然会达到 5 MB 左右,以今天的标准来看,这似乎并不大……是吗?这让我想到了我的问题。速度是否与大小成正比,或者在某些阈值处是否有跳跃和稳定,我应该努力保持在这些阈值以下? (如果是,具体的阈值是什么?)

最佳答案

在大多数现代处理器上,位置 将比大小更重要。如果您可以将所有当前正在执行的代码和很大一部分数据保留在您的 L1 缓存中,您将看到巨大的胜利。如果您四处跳跃,您可能会强制将代码或数据从缓存中取出,然后很快又需要它。

根据我的经验,“面向数据的设计”有助于代码和数据的本地化。您可能对 Pitfalls of Object Oriented Programming slides (pdf) 感兴趣( mirrored here (pdf) ),它很好地展示了如何以同时获得良好数据和代码局部性的方式处理问题。

(顺便说一句,这整个缓存大小和位置的事情是“优化大小”在某些情况下优于“优化速度”的原因之一。)

关于c++ - 代码膨胀何时开始对性能产生显着影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838345/

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