- #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
来源: http://www.codesnippet.cn/detail/2408201715265.html