C ++重复间接访问和直接访问

时间:2014-03-25 17:34:03

标签: c++ performance game-engine

这是一个相当迂腐的问题,但我希望从游戏中获得最佳表现。这个游戏包括访问一个数据结构的数组,但我不知道这个数组的大小(例如你可以想象的玩家或物品等)。这是一个动态的内存池。我可以选择使用动态分配的数组,这适用于运行时。现在我在游戏中添加了一个地图编辑器,在添加/删除实体时必须能够调整这些数组的大小。然后我写了一个数组指向该数据结构的指针,因此您可以逐个分配并逐个删除。但是从一个指向该变量的指针数组访问变量与访问数组中的变量,我假设最后一个变量更快。我可能在开始的时候不可能分配一个固定大小的数组,这会耗尽内存(游戏可能变大)并且是浪费。我应该选择哪个选项以获得最佳速度(运行时)?这个决定非常重要:要么我拆分编辑器和游戏运行变量(一个数组到指针与一个指针)(导致一个更大的应用程序,maploading函数基于这些变量)或者我使用相同的变量(一个指针数组)两种模式。我最好有最后一个,但我担心它会带走很多表现。我应该选择什么?

1 个答案:

答案 0 :(得分:2)

我不能确切地说你要做什么。然而,许多处理器(例如Intel Pentium)具有带有多个寄存器的索引寻址模式。

访问对象数组和指针数组之间的区别可能是零到一条指令。

使用每种方法编写一个小样本。编译并生成程序集列表。

重复是导致性能下降最多的因素;不编码技术。