![]()  | 
  
    MySQL 9.5.0
    
   Source Code Documentation 
   | 
 
Multi-platform timer code. More...
#include "my_rdtsc.h"#include "my_config.h"#include "my_inttypes.h"#include <sys/time.h>#include <ctime>#include <sys/times.h>Macros | |
| #define | MY_TIMER_ITERATIONS 1000000 | 
Functions | |
| ulonglong | my_timer_cycles () | 
| A cycle timer.  More... | |
| ulonglong | my_timer_nanoseconds () | 
| A namoseconds timer.  More... | |
| ulonglong | my_timer_microseconds () | 
| A microseconds timer.  More... | |
| ulonglong | my_timer_milliseconds () | 
| A millisecond timer.  More... | |
| ulonglong | my_timer_ticks () | 
| A ticks timer.  More... | |
| ulonglong | my_timer_thread_cpu () | 
| THREAD_CPU timer.  More... | |
| static void | my_timer_init_overhead (ulonglong *overhead, ulonglong(*cycle_timer)(), ulonglong(*this_timer)(), ulonglong best_timer_overhead) | 
| static ulonglong | my_timer_init_resolution (ulonglong(*this_timer)(), ulonglong overhead_times_2) | 
| static ulonglong | my_timer_init_frequency (MY_TIMER_INFO *mti) | 
| void | my_timer_init (MY_TIMER_INFO *mti) | 
| Timer initialization function.  More... | |
Multi-platform timer code.
Functions:
my_timer_cycles ulonglong cycles my_timer_nanoseconds ulonglong nanoseconds my_timer_microseconds ulonglong "microseconds" my_timer_milliseconds ulonglong milliseconds my_timer_ticks ulonglong ticks my_timer_thread_cpu ulonglong thread_cpu my_timer_init initialization / test
We'll call the first 6 functions (the ones that return a ulonglong) "my_timer_xxx" functions. Each my_timer_xxx function returns a 64-bit timing value since an arbitrary 'epoch' start. Since the only purpose is to determine elapsed times, wall-clock time-of-day is not known and not relevant.
The my_timer_init function is necessary for initializing. It returns information (underlying routine name, frequency, resolution, overhead) about all my_timer_xxx functions. A program should call my_timer_init once, use the information to decide what my_timer_xxx function to use, and subsequently call that function by function pointer.
A typical use would be: my_timer_init() ... once, at program start ... time1= my_timer_xxx() ... time before start [code that's timed] time2= my_timer_xxx() ... time after end elapsed_time= (time2 - time1) - overhead
| #define MY_TIMER_ITERATIONS 1000000 | 
| ulonglong my_timer_cycles | ( | void | ) | 
A cycle timer.
| void my_timer_init | ( | MY_TIMER_INFO * | mti | ) | 
Timer initialization function.
| [out] | mti | the timer characteristics. | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
| ulonglong my_timer_microseconds | ( | void | ) | 
A microseconds timer.
| ulonglong my_timer_milliseconds | ( | void | ) | 
A millisecond timer.
| ulonglong my_timer_nanoseconds | ( | void | ) | 
A namoseconds timer.
| ulonglong my_timer_thread_cpu | ( | void | ) | 
THREAD_CPU timer.
A THREAD CPU timer.
Expressed in nanoseconds.
| ulonglong my_timer_ticks | ( | void | ) | 
A ticks timer.