profile.h File Reference

Implementation of profiling, include counting , timing, cpu clock checking. More...

`#include <stdio.h>`
`#include <sphinxbase/sphinxbase_export.h>`
`#include <sphinxbase/prim_type.h>`

Go to the source code of this file.

## Data Structures

struct | pctr_t
| Generic event counter for profiling. More...
struct | ptmr_t
| Generic timer structures and functions for coarse-grained performance measurements using standard system calls. More...

## Functions

SPHINXBASE_EXPORT pctr_t * | pctr_new (char *name)
| operations of pctr_t More...
SPHINXBASE_EXPORT void | pctr_reset (pctr_t *ctr)
| Reset a counter. More...
SPHINXBASE_EXPORT void | pctr_print (FILE *fp, pctr_t *ctr)
| Print a counter. More...
SPHINXBASE_EXPORT void | pctr_increment (pctr_t *ctr, int32 inc)
| Increment a counter. More...
SPHINXBASE_EXPORT void | pctr_free (pctr_t *ctr)
| Free the counter. More...
SPHINXBASE_EXPORT void | ptmr_start (ptmr_t *tmr)
| Start timing using tmr. More...
SPHINXBASE_EXPORT void | ptmr_stop (ptmr_t *tmr)
| Stop timing and accumulate tmr->{t_cpu, t_elapsed, t_tot_cpu, t_tot_elapsed}. More...
SPHINXBASE_EXPORT void | ptmr_reset (ptmr_t *tmr)
| Reset tmr->{t_cpu, t_elapsed} to 0.0. More...
SPHINXBASE_EXPORT void | ptmr_init (ptmr_t *tmr)
| Reset tmr->{t_cpu, t_elapsed, t_tot_cpu, t_tot_elapsed} to 0.0. More...
SPHINXBASE_EXPORT void | ptmr_reset_all (ptmr_t *tmr)
| Reset t_cpu, t_elapsed of all timer modules in array tmr[] to 0.0. More...
SPHINXBASE_EXPORT void | ptmr_print_all (FILE *fp, ptmr_t *tmr, float64 norm)
| Print t_cpu for all timer modules in tmr[], normalized by norm (i.e., t_cpu/norm). More...
SPHINXBASE_EXPORT int32 | host_pclk (int32 dummy)
| Return the processor clock speed (in MHz); only available on some machines (Alphas). More...
SPHINXBASE_EXPORT int32 | host_endian (void)

## Detailed Description

Implementation of profiling, include counting , timing, cpu clock checking.

Currently, function host_endian is also in this function. It is not documented.

Definition in file profile.h.

## Function Documentation

SPHINXBASE_EXPORT int32 host_pclk | ( | int32 | dummy | ) |

Return the processor clock speed (in MHz); only available on some machines (Alphas).

The dummy argument can be any integer value.

SPHINXBASE_EXPORT void pctr_free | ( | pctr_t * | ctr | ) |

Free the counter.

Parameters

  ctr | A pointer of a counter

Definition at line 140 of file profile.c.

References ckd_free(), and pctr_t::name.

SPHINXBASE_EXPORT void pctr_increment | ( | pctr_t * | ctr,
|  | int32 | inc
| ) |  |

Increment a counter.

Parameters

  ctr | A pointer of a counter
  inc | The increment of the counter

Definition at line 126 of file profile.c.

References pctr_t::count.

SPHINXBASE_EXPORT pctr_t* pctr_new | ( | char * | name | ) |

operations of pctr_t

Initialize a counter

Returns
  an initialized counter

Parameters

  name | The name of the counter

Definition at line 107 of file profile.c.

References ckd_calloc, ckd_salloc, pctr_t::count, and pctr_t::name.

SPHINXBASE_EXPORT void pctr_print | ( | FILE * | fp,
|  | pctr_t * | ctr
| ) |  |

Print a counter.

Parameters

  fp | A file pointer
  ctr | A pointer of a counter

Definition at line 133 of file profile.c.

References pctr_t::count, and pctr_t::name.

SPHINXBASE_EXPORT void pctr_reset | ( | pctr_t * | ctr | ) |

Reset a counter.

Parameters

  ctr | A pointer of a counter

Definition at line 119 of file profile.c.

References pctr_t::count.

SPHINXBASE_EXPORT void ptmr_init | ( | ptmr_t * | tmr | ) |

Reset tmr->{t_cpu, t_elapsed, t_tot_cpu, t_tot_elapsed} to 0.0.

Parameters

  tmr | The timer

Definition at line 265 of file profile.c.

References ptmr_t::t_cpu, ptmr_t::t_elapsed, ptmr_t::t_tot_cpu, and ptmr_t::t_tot_elapsed.

SPHINXBASE_EXPORT void ptmr_print_all | ( | FILE * | fp,
|  | ptmr_t * | tmr,
|  | float64 | norm
| ) |  |

Print t_cpu for all timer modules in tmr[], normalized by norm (i.e., t_cpu/norm).

The array should be terminated with a sentinel with .name = NULL.

Parameters

  fp | The file pointer
  tmr | The timer

Definition at line 283 of file profile.c.

References ptmr_t::name, and ptmr_t::t_cpu.

SPHINXBASE_EXPORT void ptmr_reset | ( | ptmr_t * | tmr | ) |

Reset tmr->{t_cpu, t_elapsed} to 0.0.

Parameters

  tmr | The timer

Definition at line 257 of file profile.c.

References ptmr_t::t_cpu, and ptmr_t::t_elapsed.

Referenced by ptmr_reset_all().

SPHINXBASE_EXPORT void ptmr_reset_all | ( | ptmr_t * | tmr | ) |

Reset t_cpu, t_elapsed of all timer modules in array tmr[] to 0.0.

The array should be terminated with a sentinel with .name = NULL.

Parameters

  tmr | The timer

Definition at line 275 of file profile.c.

References ptmr_t::name, and ptmr_reset().

SPHINXBASE_EXPORT void ptmr_start | ( | ptmr_t * | tmr | ) |

Start timing using tmr.

Parameters

  tmr | The timer

Definition at line 178 of file profile.c.

References ptmr_t::start_cpu, and ptmr_t::start_elapsed.

SPHINXBASE_EXPORT void ptmr_stop | ( | ptmr_t * | tmr | ) |

Stop timing and accumulate tmr->{t_cpu, t_elapsed, t_tot_cpu, t_tot_elapsed}.

Parameters

  tmr | The timer

Definition at line 212 of file profile.c.

References ptmr_t::start_cpu, ptmr_t::start_elapsed, ptmr_t::t_cpu, ptmr_t::t_elapsed, ptmr_t::t_tot_cpu, and ptmr_t::t_tot_elapsed.