Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.1 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. dbgperf.hxx
  6. Abstract:
  7. Debug Library Performance counter header
  8. Author:
  9. Steve Kiraly (SteveKi) 22-Jun-2000
  10. Revision History:
  11. --*/
  12. #ifndef _DBGPERF_HXX_
  13. #define _DBGPERF_HXX_
  14. #ifdef DBG
  15. __inline DWORD dbg_clockrate() {LARGE_INTEGER li; QueryPerformanceFrequency(&li); return li.LowPart;}
  16. __inline DWORD dbg_clock() {LARGE_INTEGER li; QueryPerformanceCounter(&li); return li.LowPart;}
  17. #define TIMEVAR(t) DWORD t ## T; DWORD t ## N
  18. #define TIMEIN(t) t ## T = 0, t ## N = 0
  19. #define TIMESTART(t) t ## T -= dbg_clock(), t ## N ++
  20. #define TIMESTOP(t) t ## T += dbg_clock()
  21. #define TIMEFMT(t) ((DWORD)(t) / clockrate()), (((DWORD)(t) * 1000 / clockrate())%1000)
  22. #define TIMEOUT(t) if (t ## N) DBG_MSG(DBG_PERF, (": %ld calls, %ld.%03ld sec (%ld.%03ld)", t ## N, TIMEFMT(t ## T), TIMEFMT(t ## T / t ## N)));
  23. #else
  24. #define TIMEVAR(t)
  25. #define TIMEIN(t)
  26. #define TIMESTART(t)
  27. #define TIMESTOP(t)
  28. #define TIMEFMT(t)
  29. #define TIMEOUT(t)
  30. #endif
  31. #endif // DBGPERF_HXX