令人困惑的结构定义&参考文献降低性能

时间:2018-02-28 00:56:27

标签: c pointers optimization struct

我一直致力于解决一个问题,我需要优化一段代码来提高速度,并且遇到了一些令我困惑的结构定义/引用。我希望有人可以解释下面的代码,或者指出定义可能不是最佳的任何领域。

据我所知,有3个相关的代码片段。我在跟踪CycArr,cyc_inf和CycInf之间遇到了麻烦,并且想知道是否有一种更聪明的方式来声明* proc。

#if 0
static struct cycles c_start[PROC_CNT][CPU_CNT];
static struct cycles c_end[PROC_CNT][CPU_CNT];
#else
static CycArr c_start;
static CycArr c_end;
#endif

......结构的定义

struct cyc_inf
{
   int var1;
   int var2;
   int var3;
}

typedef struct cyc_inf CycInf;
typedef CycInf CycArr [PROC_CNT][CPU_CNT];

...嵌套for循环是速度下降的地方,让我觉得有更好的方法来使用cyc_inf proc。

void function(int foo) 
{
     struct cyc_inf *proc[PROC_CNT + CPU_CNT];

     if (foo)
         proc = c_start;
     else
         proc = c_end;

     for (int i=0; i<= PROC_CNT; i++)
     {
         for (int j=0; j<= CPU_CNT; j++)
         {
             proc[i][j].var1 = global1[j];
             proc[i][j].var2 = global2[j];
             proc[i][j].var3 = global3[j];
             ...
         }
     } 
}

...我尝试对齐结构但没有看到任何改进。有没有办法使用更好的malloc?任何和所有的输入都表示赞赏,谢谢!

0 个答案:

没有答案