代码优化
如果我有一个很大的结构(有很多成员变量).这个结构指针传递给我的代码中的许多函数.在几乎所有函数中,这种结构的一些成员变量经常被使用.
>如果我在结构声明的开头放置那些经常使用的成员变量,它是否会优化MCPS的代码 – 每秒百万个周期(代码消耗的时间).如果我按时将频繁访问的成员放入,那么它们是否会被有效/更少地访问,而不是将它们随机地放在结构声明底部的结构中?如果是的话逻辑是什么? structurepointer1-> member_variable 如果我将它分配给局部变量然后访问局部变量,它是否有助于在MCPS方面优化它,如下所示? local_variable = structurepointer1->member_variable; 如果是,那它有什么帮助? 解决方法
1)结构中字段的位置应该对其访问时间没有影响,除非你的结构非常大且跨越多个页面,最好定位常用的快速成员连续关闭以增加引用的局部性并尝试减少缓存未命中.
2)也许/也许不是.事实上它可能会让事情变得更慢.如果变量不是易失性的,那么编译器可能足够聪明,无论如何都要将字段存储在寄存器中.即使没有,你的处理器也会缓存它的值,但如果使用距离相差太远,那么这可能无济于事,其间还有很多其他内存访问.如果该值已存储在寄存器中或将保留在处理器的缓存中,则将其分配给本地只会是不必要的额外工作. 标准优化免责声明:在优化之前始终进行配置.确保您要优化的内容值得优化.始终对您尝试过的优化进行概述,并确保它们实际上更快(而不是更慢). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |