X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Ftiming.h;h=d493cf1531ccb3ae86e770255027e28851c10514;hp=8b4a0c13fc8ca37a204cfe10fd23b936d57161af;hb=7fe4b7de2eb91fc87a5c53ff081b15df0c449a0a;hpb=379504a233e3e2cc85bca1e7b6d864f1395aec7c diff --git a/include/yaz/timing.h b/include/yaz/timing.h index 8b4a0c1..d493cf1 100644 --- a/include/yaz/timing.h +++ b/include/yaz/timing.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data. + * Copyright (C) 1995-2013 Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -27,7 +27,8 @@ /** * \file timing.h - * \brief Timing Utilities + \brief Timing Utilities + */ #ifndef YAZ_TIMING_H @@ -37,20 +38,69 @@ YAZ_BEGIN_CDECL +/** \brief YAZ timing handle (opaque type) + */ typedef struct yaz_timing *yaz_timing_t; +/** \brief create timing handle + \returns timing handle + + \verbatim + yaz_timing_t my = yaz_timing_create(); + yaz_timing_start(my); + do_work(); + yaz_timing_stop(my); + + printf("real=%g user=%g sys=%g\n", + yaz_timing_get_real(my), + yaz_timing_get_user(my), + yaz_timing_get_sys(my)); + + yaz_timing_destroy(my); + + \endverbatim + */ YAZ_EXPORT yaz_timing_t yaz_timing_create(void); + +/** \brief start timer + \param t timing handle + */ YAZ_EXPORT void yaz_timing_start(yaz_timing_t t); + +/** \brief stop timer + \param t timing handle + + Use yaz_timing_get_real, yaz_timing_get_user and yaz_timing_get_sys + to fetch timing results. +*/ YAZ_EXPORT void yaz_timing_stop(yaz_timing_t t); + +/** \brief returns real time in seconds + \param t timing handle + \returns time in seconds +*/ YAZ_EXPORT double yaz_timing_get_real(yaz_timing_t t); + +/** \brief returns user time in seconds + \param t timing handle + \returns time in seconds +*/ YAZ_EXPORT double yaz_timing_get_user(yaz_timing_t t); + +/** \brief returns system time in seconds + \param t timing handle + \returns time in seconds +*/ YAZ_EXPORT double yaz_timing_get_sys(yaz_timing_t t); + +/** \brief destroys timing handle +*/ YAZ_EXPORT void yaz_timing_destroy(yaz_timing_t *tp);