Exemplo n.º 1
0
void CPUBenchmark::getProcedureOverhead(vector<double> &result){
    uint64_t totalTime = 0;
    uint64_t start, end;

    //0 argument
    warmup();
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_0();
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[0] = (double)totalTime / (double)TIMES;

    //1 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_1(1);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[1] = (double)totalTime / (double)TIMES;

     //2 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_2(1, 2);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[2] = (double)totalTime / (double)TIMES;

     //3 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_3(1, 2, 3);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[3] = (double)totalTime / (double)TIMES;

     //4 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_4(1, 2, 3, 4);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[4] = (double)totalTime / (double)TIMES;

     //5 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_5(1, 2, 3, 4, 5);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[5] = (double)totalTime / (double)TIMES;

     //6 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_6(1, 2, 3, 4, 5, 6);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[6] = (double)totalTime / (double)TIMES;

     //7 argument
    warmup();
    totalTime = 0;
    for (int i = 0; i < TIMES; i++) {
      start = rdtscStart();
      fun_7(1, 2, 3, 4, 5, 6, 7);
      end = rdtscEnd();
      totalTime += (end - start);
    }
    result[7] = (double)totalTime / (double)TIMES;
}
Exemplo n.º 2
0
int main(){
  return fun_3(5,6);
}