From 3c136f74d840dbeb4368a72f3ff77a003a9059b8 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Wed, 11 Dec 2002 22:56:53 +0000 Subject: [PATCH] added epicsThreadIdGetSelf() performance test --- src/libCom/test/epicsThreadTest.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/libCom/test/epicsThreadTest.cpp b/src/libCom/test/epicsThreadTest.cpp index 63a3b271f..e9953b50c 100644 --- a/src/libCom/test/epicsThreadTest.cpp +++ b/src/libCom/test/epicsThreadTest.cpp @@ -11,6 +11,7 @@ /* Author: Marty Kraimer Date: 26JAN2000 */ /* sleep accuracy tests by Jeff Hill */ +/* epicsThreadGetIdSelf performance by Jeff Hill */ #include #include @@ -82,6 +83,29 @@ static void threadSleepTest() printf ( "Average error %f sec\n", errorSum / ( i + 1 ) ); } +static void epicsThreadGetIdSelfPerfTest () +{ + static const unsigned N = 10000; + static const double microSecPerSec = 1e6; + epicsTime begin = epicsTime::getCurrent (); + for ( unsigned i = 0u; i < N; i++ ) { + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + epicsThreadGetIdSelf (); + }; + epicsTime end = epicsTime::getCurrent (); + printf ( "It takes %f micro sec to call epicsThreadGetIdSelf ()\n", + microSecPerSec * ( end - begin ) / (10 * N) ); +} + extern "C" void threadTest(int ntasks,int verbose) { myThread **papmyThread; @@ -90,6 +114,8 @@ extern "C" void threadTest(int ntasks,int verbose) int startPriority,minPriority,maxPriority; int errVerboseSave = errVerbose; + epicsThreadGetIdSelfPerfTest (); + threadSleepTest(); errVerbose = verbose;