diff options
Diffstat (limited to 'TAO/tests/Param_Test/results.cpp')
-rw-r--r-- | TAO/tests/Param_Test/results.cpp | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/TAO/tests/Param_Test/results.cpp b/TAO/tests/Param_Test/results.cpp new file mode 100644 index 00000000000..b2a12a29bd5 --- /dev/null +++ b/TAO/tests/Param_Test/results.cpp @@ -0,0 +1,154 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/Param_Test +// +// = FILENAME +// results.cpp +// +// = DESCRIPTION +// Printing the results +// +// = AUTHORS +// Aniruddha Gokhale +// +// ============================================================================ + +#include "results.h" +#include "tao/debug.h" +#include "ace/Log_Msg.h" + +ACE_RCSID (Param_Test, + results, + "results.cpp,v 1.8 1999/06/23 14:50:14 parsons Exp") + +Results::Results (void) +{ +} + +Results::~Results (void) +{ + delete [] this->elapsed_time_; +} + +void +Results::print_stats (void) +{ + double + avg_real_time = 0, + avg_user_time = 0, + avg_system_time = 0, + cps; // calls per sec + + CORBA::ULong i; + + if (TAO_debug_level > 0 && this->error_count_ == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Iteration\tReal time (msec)\tUser time (msec)" + "\tSystem time (msec)\n\n")); + for (i = 0; i < this->call_count_; i++) + { + this->elapsed_time_[i].real_time *= ACE_ONE_SECOND_IN_MSECS; + this->elapsed_time_[i].user_time *= ACE_ONE_SECOND_IN_MSECS; + this->elapsed_time_[i].system_time *= ACE_ONE_SECOND_IN_MSECS; + avg_real_time += this->elapsed_time_[i].real_time; + avg_user_time += this->elapsed_time_[i].user_time; + avg_system_time += this->elapsed_time_[i].system_time; + + ACE_DEBUG ((LM_DEBUG, + "%u\t\t%0.06f\t\t%0.06f\t\t%0.06f\n", + i, + (this->elapsed_time_[i].real_time < 0.0? + 0.0:this->elapsed_time_[i].real_time), + (this->elapsed_time_[i].user_time < 0.0? + 0.0:this->elapsed_time_[i].user_time), + (this->elapsed_time_[i].system_time < 0.0? + 0.0:this->elapsed_time_[i].system_time))); + } // end of for loop + + // compute average + avg_real_time /= this->call_count_; + avg_user_time /= this->call_count_; + avg_system_time /= this->call_count_; + cps = 1000 / (avg_real_time < 0.01 ? 0.01 : avg_real_time); + + ACE_DEBUG ((LM_DEBUG, + "\n*=*=*=*=*= Average *=*=*=*=*=*=\n" + "\treal_time\t= %0.06f ms, \n" + "\tuser_time\t= %0.06f ms, \n" + "\tsystem_time\t= %0.06f ms\n" + "\t%0.00f calls/second\n" + "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", + (avg_real_time < 0.0? 0.0:avg_real_time), + (avg_user_time < 0.0? 0.0:avg_user_time), + (avg_system_time < 0.0? 0.0:avg_system_time), + (cps < 0.0? 0.0 : cps))); + + ACE_DEBUG ((LM_DEBUG, + "\t%d calls, %d errors\n" + "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", + this->call_count_, + this->error_count_)); + } + else if (this->error_count_ != 0) + { + ACE_DEBUG ((LM_DEBUG, + "\tERROR %d faults in %d calls\n" + "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", + this->error_count_, + this->call_count_)); + } +} + +void +Results::print_exception (const char * /* call_name */ + ACE_ENV_ARG_DECL_NOT_USED) +{ + //ACE_PRINT_EXCEPTION (call_name); +} + +void +Results::start_timer (void) +{ + this->timer_.start (); +} + +void +Results::stop_timer (void) +{ + this->timer_.stop (); + this->timer_.elapsed_time (this->elapsed_time_[this->call_count_-1]); +} + +CORBA::ULong +Results::call_count (void) +{ + return this->call_count_; +} + +void +Results::call_count (CORBA::ULong c) +{ + this->call_count_ = c; +} + +CORBA::ULong +Results::error_count (void) +{ + return this->error_count_; +} + +void +Results::error_count (CORBA::ULong c) +{ + this->error_count_ = c; +} + +void +Results::iterations (CORBA::ULong iters) +{ + this->elapsed_time_ = new ACE_Profile_Timer::ACE_Elapsed_Time [iters]; +} |