当前位置:  开发笔记 > 开放平台 > 正文

C:使用很多结构可以使程序变慢?

如何解决《C:使用很多结构可以使程序变慢?》经验,为你挑选了1个好方法。

我正在编写一个突破性克隆.我有一个版本,其中我只有一层深度的结构.此版本以70 fps运行.

为了在代码中更清晰,我决定代码应该有更多的抽象并创建更多的结构.大多数时候我有两个两层三层深的结构.此版本以30 fps运行.

由于除了结构之外还有其他一些差异,我问你:在C中使用大量结构会显着减慢代码吗?

例如在第二个版本上,我正在使用:

struct Breakout
{
   Ball ball;
   Paddle paddle;
   Level* levels;
}

struct Level
{
   Bricks* bricks;
}

所以,我使用了很多次breakout.levels [level_in_play] .bricks [i] .visible例如.这可能是一个原因吗?

谢谢.



1> Daniel Pryde..:

执行大量指针解除引用可能会影响性能.当你将一个大型结构拆分成更小的结构时,会发生两件事:

    访问子结构的成员需要额外的指针取消引用和内存提取,这稍微慢一点,并且

    您可以减少引用的位置,这会导致更多的缓存未命中和页面错误,并可能大大降低性能.

引用的位置可能就是在这里咬你的东西.如果可能,尝试在同一malloc块中分配相关的结构,这增加了它们被缓存在一起的可能性.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有