performance_test_options.cpp

来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C++ 代码 · 共 470 行 · 第 1/2 页

CPP
470
字号
                  this->do_checksum () != 0,                  this->do_xdr() != 0,                  this->n_lwps (),               ACE_Thread::getconcurrency ()));  else if (this->verbose ())    ACE_DEBUG ((LM_INFO,                "%8d = total iterations\n"                "%8d = logical connections\n"                "%8d = physical connections\n"                "%8d = thread count\n"                "%8d = low water mark\n"                "%8d = high water mark\n"                "%8d = message_size\n"                "%8d = initial queue length\n"                "%8d = consecutive ports\n"                "%8d = calculated checksum\n"                "%8d = perform xdr conversion\n"                "%8d = zero-copy driver\n"                "%8d = free dynamic memory\n"                "%8d = print summary only\n"                "%8d = eager exit\n"                "%8d = UDP\n"                "%8d = send ack\n"                "%8d = THR_DETACHED\n"                "%8d = THR_BOUND\n"                "%8d = THR_NEW_LWP\n"                "%8d = sleep time\n",                this->iterations (),                this->logical_connections (),                this->physical_connections (),                this->thr_count (),                this->low_water_mark (),                this->high_water_mark (),                this->msg_size (),                this->initial_queue_length (),                this->consecutive_ports (),                this->do_checksum () != 0,                this->do_xdr() != 0,                this->do_zero_copy () != 0,                this->do_delete () != 0,                this->do_print_summary () != 0,                this->do_eager_exit () != 0,                this->do_udp () != 0,                this->do_ack () != 0,                (this->t_flags () & THR_DETACHED) != 0,                (this->t_flags () & THR_BOUND) != 0,                (this->t_flags () & THR_NEW_LWP) != 0,                this->sleep_time ()));}voidPerformance_Test_Options::print_results (void){  ACE_Profile_Timer::ACE_Elapsed_Time et;  this->_itimer.elapsed_time (et);  ACE_Profile_Timer::Rusage rusage;  this->_itimer.elapsed_rusage (rusage);  size_t total    = this->count ();  double nbytes   = total * this->msg_size ();  double cpu_time = et.user_time + et.system_time;#if 0  mutex_timer.print_total ("ACE_Thread_Mutex overhead:", mutex_counter, 2);  condition_timer.print_total ("ACE_Condition overhead:", condition_counter, 2);  ACE_DEBUG ((LM_INFO,                "%8d (number of ACE_Thread_Mutex operations)\n"                "%8d (number of ACE_Condition operations)",             mutex_counter, condition_counter));#endif /* NDEBUG */  if (this->do_print_summary ())    {#if defined (ACE_HAS_PRUSAGE_T)      ACE_DEBUG ((LM_INFO,                  "\n%8d PEs\n"                  "%8.2f Mbit/sec\n"                  "%8d (voluntary context switches)\n"                  "%8d (involuntary context switches)\n"                  "%8d (total context switches)\n"                  "%8d.%d sec (wait-cpu time)\n"                  "%8d.%d sec (user lock wait sleep time)\n"                  "%8d.%d sec (all other sleep time)\n"                  "%8d (major page faults)\n"                  "%8d (minor page faults)\n"                  "%8d (number of LWPs)\n",                  this->thr_count (),                  (nbytes / et.real_time) * 8.0 / 1024.0 / 1024.0,                  rusage.pr_vctx,                  rusage.pr_ictx,                  rusage.pr_vctx + rusage.pr_ictx,                  rusage.pr_wtime.tv_sec, rusage.pr_wtime.tv_nsec / 1000000,                  rusage.pr_ltime.tv_sec, rusage.pr_ltime.tv_nsec / 1000000,                  rusage.pr_slptime.tv_sec, rusage.pr_slptime.tv_nsec / 1000000,                  rusage.pr_majf,                  rusage.pr_minf,                  ACE_Thread::getconcurrency ()));#elif defined (ACE_HAS_GETRUSAGE) && !defined (ACE_WIN32)      ACE_DEBUG ((LM_INFO,                  "\n%8d PEs\n"                  "%8.2f Mbit/sec\n"                  "%8d (voluntary context switches)\n"                  "%8d (involuntary context switches)\n"                  "%8d (total context switches)\n"                  "%8d.%d sec (user time)\n"                  "%8d.%d sec (system time)\n"                  "%8d (major page faults)\n"                  "%8d (minor page faults)\n"                  "%8d (number of LWPs)\n",                  this->thr_count (),                  (nbytes / et.real_time) * 8.0 / 1024.0 / 1024.0,                  rusage.ru_nvcsw,                  rusage.ru_nivcsw,                  rusage.ru_nvcsw + rusage.ru_nivcsw,                  rusage.ru_utime.tv_sec, rusage.ru_utime.tv_usec / 1000000,                  rusage.ru_stime.tv_sec, rusage.ru_stime.tv_usec / 1000000,                  rusage.ru_majflt,                  rusage.ru_minflt,                  ACE_Thread::getconcurrency ()));#elif defined (ACE_HAS_GETRUSAGE) && defined (ACE_WIN32)      // Need more stuff for Win32.      ACE_DEBUG ((LM_INFO,                  "\n%8d PEs\n"                  "%8.2f Mbit/sec\n"                  "%8d (number of LWPs)\n",                  this->thr_count (),                  (nbytes / et.real_time) * 8.0 / 1024.0 / 1024.0,                  ACE_Thread::getconcurrency ()));#endif /* ACE_HAS_PRUSAGE_T */    }  else    {      ACE_DEBUG ((LM_INFO,                  "\ntotal work = %d\n"                  "(Only interpret the next two statistics for throughput tests)\n"                  "%f bytes in %.2f real seconds = %.2f Mbit/sec\n"                  "%f bytes in %.2f CPU seconds = %.2f Mbit/sec\n",                  total,                  nbytes, et.real_time, (nbytes / et.real_time) * 8.0 / 1024.0 / 1024.0,                  nbytes, cpu_time, (nbytes / cpu_time) * 8.0 / 1024.0 / 1024.0));#if defined (ACE_HAS_PRUSAGE_T)      ACE_DEBUG ((LM_INFO,                  "%8d = lwpid\n"                  "%8d = lwp count\n"                  "%8d = minor page faults\n"                  "%8d = major page faults\n"                  "%8d = input blocks\n"                  "%8d = output blocks\n"                  "%8d = messages sent\n"                  "%8d = messages received\n"                  "%8d = signals received\n"                  "%8ds, %dms = wait-cpu (latency) time\n"                  "%8ds, %dms = user lock wait sleep time\n"                  "%8ds, %dms = all other sleep time\n"                  "%8d = voluntary context switches\n"                  "%8d = involuntary context switches\n"                  "%8d = total context switches\n"                  "%8d = system calls\n"                  "%8d = chars read/written\n"                  "%8d = number of LWPs\n"                  "---------------------\n"                  "real time   = %.3f\n"                  "user time   = %.3f\n"                  "system time = %.3f\n"                  "---------------------\n",                  rusage.pr_lwpid,                  rusage.pr_count,                  rusage.pr_minf,                  rusage.pr_majf,                  rusage.pr_inblk,                  rusage.pr_oublk,                  rusage.pr_msnd,                  rusage.pr_mrcv,                  rusage.pr_sigs,                  rusage.pr_wtime.tv_sec, rusage.pr_wtime.tv_nsec / 1000000,                  rusage.pr_ltime.tv_sec, rusage.pr_ltime.tv_nsec / 1000000,                  rusage.pr_slptime.tv_sec, rusage.pr_slptime.tv_nsec / 1000000,                  rusage.pr_vctx,                  rusage.pr_ictx,                  rusage.pr_vctx + rusage.pr_ictx,                  rusage.pr_sysc,                  rusage.pr_ioch,                  ACE_Thread::getconcurrency (),                  et.real_time, et.user_time, et.system_time));#elif defined (ACE_HAS_GETRUSAGE) && !defined (ACE_WIN32)      ACE_DEBUG ((LM_INFO,                  "%8d = minor page faults\n"                  "%8d = major page faults\n"                  "%8d = input blocks\n"                  "%8d = output blocks\n"                  "%8d = messages sent\n"                  "%8d = messages received\n"                  "%8d = signals received\n"                  "%8d = voluntary context switches\n"                  "%8d = involuntary context switches\n"                  "%8d = total context switches\n"                  "%8d = number of LWPs\n"                  "---------------------\n"                  "real time   = %.3f\n"                  "user time   = %.3f\n"                  "system time = %.3f\n"                  "---------------------\n",                  rusage.ru_minflt,                  rusage.ru_majflt,                  rusage.ru_inblock,                  rusage.ru_oublock,                  rusage.ru_msgsnd,                  rusage.ru_msgrcv,                  rusage.ru_nsignals,                  rusage.ru_nvcsw,                  rusage.ru_nivcsw,                  rusage.ru_nvcsw + rusage.ru_nivcsw,                  ACE_Thread::getconcurrency (),                  et.real_time, et.user_time, et.system_time));#elif defined (ACE_HAS_GETRUSAGE) && defined (ACE_WIN32)      // need to write more dump ops for rusage on Win32      ACE_DEBUG ((LM_INFO,                  "%8d = number of LWPs\n"                  "---------------------\n"                  "real time   = %.3f\n"                  "user time   = %.3f\n"                  "system time = %.3f\n"                  "---------------------\n",                  ACE_Thread::getconcurrency (),                  et.real_time, et.user_time, et.system_time));#endif /* ACE_HAS_PRUSAGE_T */    }  if (performance_test_options.do_eager_exit ())    ACE_OS::_exit (0);}#endif /* ACE_HAS_THREADS */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?