如何实施综合基准?

Posted

技术标签:

【中文标题】如何实施综合基准?【英文标题】:How to implement a synthetic benchmark? 【发布时间】:2014-02-21 13:23:47 【问题描述】:

我正在用 C++ 和汇编代码编写我的第一个程序。我已经知道如何用 C++ 编程,但是当我尝试用汇编代码编程时,我遇到了很多问题。 我想做一个综合基准

“旨在模拟组件或系统上的特定类型的工作负载。综合基准测试通过专门创建的程序来实现这一点,这些程序将工作负载强加到组件上。” (***)

例如,如果我想计算<strong>long</strong> fact = pow(3.0, 2000) 的阶乘,我该如何衡量 C++ 中组件的性能? (而不是整个系统的性能)。

其余代码(事实的计算)在汇编代码中完成。

【问题讨论】:

除非我弄错了,否则您只需在循环内重复调用pow,将循环时间除以迭代次数即可。除非您使用的是非多任务操作系统,在这种情况下,每次运行都应该花费相同的时间,从而使平均循环变得多余。 【参考方案1】:

以下是我使用汇编代码的基准测试之一(针对 Linux)的一部分,可以在其中执行重复计算而不必担心过度优化。您需要使用具有基于程序集的循环的高分辨率计时器,以保证合理的执行时间。您可能希望在循环中重复计算以填充管道。

这个重复 20M 加 10 次以找到最大速度。最后检查 IntCount1 值作为简单的完整性检查

  C Code

   intCount1 = 0;
   max = 0;
   for (i=0; i<10; i++)
   
       count = intCount1;
       start_time();
       _mips1Reg();
       end_time();
       count = intCount1 - count;       
       mips = (int)((double)count / 1000000.0 / secs + 0.5);
       if(mips > max) max = mips;
          
   mipsReg[0] = max;
   printf(" 1 Register  %7d 32 Bit Integer MIPS\n", mipsReg[0]);

 ########################################################

 Hi-Res Timer Used 

 clock_gettime(CLOCK_REALTIME, &tp1);
 theseSecs =  tp1.tv_sec + tp1.tv_nsec / 1e9;           

 ########################################################

  Assembly Code

    global _mips1Reg       
  _mips1Reg:
      push eax
      push ebx
      push ecx
      push edx
      push edi
      mov edi, 1000000
      mov eax, [intCount1]
      align 8
  dlp:add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 1
      add eax, 3
      dec edi
      jnz dlp
      mov [intCount1], eax
      pop edi
      pop edx
      pop ecx
      pop ebx
      pop eax
      ret

【讨论】:

以上是关于如何实施综合基准?的主要内容,如果未能解决你的问题,请参考以下文章

综合型集团该如何利用数字化转型支撑磅礴多元的服务?

地下综合管廊

惊呆面试官!云架构企业网站综合项目

一体化综合B2B电商平台:为企业打造传统经销转型最佳实施方案

2019 上半年信息系统项目管理师上午综合知识真题

shell综合实例