性能静态数组与指向数组的指针

时间:2014-03-04 22:52:13

标签: c++ visual-c++ pointers

指针在静态数组上总是有一点开销,因为使用它首先需要将指针地址加载到注册表中(我说的是汇编)。

例如:

   var_resul = var_dynamic[var_index];
009D13F3  movsx       eax,byte ptr [ebp-45h] 
009D13F7  mov         ecx,dword ptr [ebp-0Ch] 
009D13FA  mov         dl,byte ptr [ecx+eax] 
009D13FD  mov         byte ptr [ebp-51h],dl 

   var_resul = var_static[var_index];
009D1400  movsx       eax,byte ptr [ebp-45h] 
009D1404  mov         cl,byte ptr [ebp+eax*4-3Ch] 
009D1408  mov         byte ptr [ebp-51h],cl  

有没有办法在c ++中解决这个问题?我正在编写一个国际象棋引擎,每个速度增益都很重要。 我想这需要在运行时动态地更改汇编指令以指向分配的内存区域,但可能存在这样的功能,即使它破坏了代码的可移植性。我正在使用visual c ++。 谢谢!

0 个答案:

没有答案