不要被这个世界改变!|
片段信息
  1. 阅读

    738次

  2. 所属类别

    基础/常用
  3. 片断来源

    点击查看
  4. 发布日期

    2017-08-24 09:14:01

PAPI-C 基础知识

这本来是个分享的,但插件不好使了,等有时间在搞一个
 
						#include<papi.h>
#include<stdlib.h>
#include<stdio.h>
  
int main()
{
    int Eventset;
    int i,sum;
      
    long_long values[1],values1[1],values2[1];
      
    /*Initializa the PAPI library*/
    if (PAPI_library_init(PAPI_VER_CURRENT) != PAPI_VER_CURRENT)
    exit(-1);
  
    /*Create an Eventset*/
    Eventset = PAPI_NULL;
      
    if(PAPI_create_eventset(&Eventset) != PAPI_OK)
    exit(-1);
      
    /*Add some event to Eventset*/
    if(PAPI_add_event(Eventset,PAPI_FP_INS) != PAPI_OK)
    exit(-1);
      
    /*Start counting events*/
    if(PAPI_start(Eventset) != PAPI_OK)
    exit(-1);
      
    /*Read counters before workload running*/
    if(PAPI_read(Eventset,values1) != PAPI_OK)
    exit(-1);
  
    /*Do some computation here*/
    for(i=0;i<10000;i++)
    sum+=i;
      
    /*stop counting event*/
    if(PAPI_stop(Eventset,values2) != PAPI_OK)
    exit(-1);
  
    /*Clean up Eventset*/
    if(PAPI_cleanup_eventset(Eventset) != PAPI_OK)
    exit(-1);
      
    /*Destroy the Eventset*/
    if(PAPI_destroy_eventset(&Eventset) != PAPI_OK)
    exit(-1);
      
    /*Shutdown PAPI*/
    PAPI_shutdown();
      
    /*Get value*/
    values[0]=values2[0]-values1[0];
    printf("%lld\\n",values[0]);
    return 0;
}
						//该片段来自于http://www.codesnippet.cn/detail/2408201715265.html