コード例 #1
0
int foo(int i) {
  apex_profiler_handle profiler = apex_start(APEX_FUNCTION_ADDRESS, &foo);
  int j = i * i;
  apex_stop(profiler);
  profiler = apex_resume(APEX_FUNCTION_ADDRESS, &foo);
  int k = j * j;
  apex_stop(profiler);
  return k;
}
コード例 #2
0
int foo (int i) {
  static __thread apex_profiler_handle my_profiler;
  if (i % 2 == 0) {
    my_profiler = apex_start(APEX_FUNCTION_ADDRESS, &foo);
  } else {
    my_profiler = apex_resume(APEX_FUNCTION_ADDRESS, &foo);
  }
  int result = i*i;
  if (i % 2 == 0) {
    apex_yield(my_profiler);
  } else {
    apex_stop(my_profiler);
  }
  return result;
}