diff options
Diffstat (limited to 'TAO/performance-tests/Sequence_Latency/Deferred/client.cpp')
-rw-r--r-- | TAO/performance-tests/Sequence_Latency/Deferred/client.cpp | 647 |
1 files changed, 0 insertions, 647 deletions
diff --git a/TAO/performance-tests/Sequence_Latency/Deferred/client.cpp b/TAO/performance-tests/Sequence_Latency/Deferred/client.cpp deleted file mode 100644 index 2cdb7d6c261..00000000000 --- a/TAO/performance-tests/Sequence_Latency/Deferred/client.cpp +++ /dev/null @@ -1,647 +0,0 @@ -// $Id$ - -#include "tao/DynamicInterface/Request.h" /* Must come first for G++ - 3.4 or better */ - -#include "TestC.h" - -#include "tao/Strategies/advanced_resource.h" -#include "tao/TC_Constants_Forward.h" - -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "ace/High_Res_Timer.h" -#include "ace/Sched_Params.h" -#include "ace/Stats.h" -#include "ace/Sample_History.h" -#include "ace/OS_NS_errno.h" - -ACE_RCSID (Deferred, - client, - "$Id$") - -const char *ior = "file://test.ior"; -int niterations = 1000; -int burst = 10; -int do_shutdown = 1; -int do_dump_history = 0; -int sz = 512; - -const char *data_type = "octet"; - -int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "t:s:hxk:i:b:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 't': - data_type = get_opts.opt_arg (); - - if (ACE_OS::strcmp (data_type, "octet") != 0 && - ACE_OS::strcmp (data_type, "char") != 0 && - ACE_OS::strcmp (data_type, "long") != 0 && - ACE_OS::strcmp (data_type, "short") != 0 && - ACE_OS::strcmp (data_type, "double") != 0 && - ACE_OS::strcmp (data_type, "longlong") != 0) - return -1; - break; - - case 's': - sz = ACE_OS::atoi (get_opts.opt_arg ()); - break; - - case 'h': - do_dump_history = 1; - break; - - case 'x': - do_shutdown = 0; - break; - - case 'k': - ior = get_opts.opt_arg (); - break; - - case 'i': - niterations = ACE_OS::atoi (get_opts.opt_arg ()); - break; - - case 'b': - burst = ACE_OS::atoi (get_opts.opt_arg ()); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - "-t <datatype> " - "-s <size> " - "-k <ior> " - "-i <niterations> " - "-b <burst> " - "-x (disable shutdown) " - "-h (dump history) " - "\n", - argv [0]), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} - - - -int -test_octet_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::octet_load ol (sz); - ol.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_octet_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("octet_load") <<= ol; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - -int -test_long_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::long_load ll (sz); - ll.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_long_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("long_load") <<= ll; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - -int -test_short_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::short_load sl (sz); - sl.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_short_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("short_load") <<= sl; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - -int -test_char_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::char_load cl (sz); - cl.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_char_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("char_load") <<= cl; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - -int -test_longlong_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::longlong_load ll (sz); - ll.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_longlong_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("longlong_load") <<= ll; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - -int -test_double_seq (Test::Roundtrip_ptr roundtrip ACE_ENV_ARG_DECL) -{ - ACE_Sample_History history (niterations); - - Test::double_load dl (sz); - dl.length (sz); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - - CORBA::Request_var *request; - ACE_NEW_RETURN (request, CORBA::Request_var[burst], 1); - - for (int i = 0; i < niterations; ++i) - { - int j; - - for (j = 0; j != burst; ++j) - { - CORBA::ULongLong start = ACE_OS::gethrtime (); - - request[j] = - roundtrip->_request ("test_double_method" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - request[j]->add_in_arg ("double_load") <<= dl; - request[j]->add_in_arg ("send_time") <<= start; - request[j]->set_return_type (CORBA::_tc_ulonglong); - - request[j]->send_deferred (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - for (j = 0; j != burst; ++j) - { - request[j]->get_response (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::ULongLong retval; - if ((request[j]->return_value () >>= retval) == 1) - { - ACE_hrtime_t now = ACE_OS::gethrtime (); - history.sample (now - retval); - } - } - } - delete[] request; - - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_DEBUG ((LM_DEBUG, "test finished\n")); - - ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration....")); - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - ACE_DEBUG ((LM_DEBUG, "done\n")); - - if (do_dump_history) - { - history.dump_samples ("HISTORY", gsf); - } - - ACE_Basic_Stats stats; - history.collect_basic_stats (stats); - stats.dump_results ("Total", gsf); - - ACE_Throughput_Stats::dump_throughput ("Total", gsf, - test_end - test_start, - stats.samples_count ()); - return 0; -} - - - -// The main() function starts here - -int -main (int argc, char *argv[]) -{ - int priority = - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO) - + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2; - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - - if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - { - ACE_DEBUG ((LM_DEBUG, - "client (%P|%t): user is not superuser, " - "test runs in time-shared class\n")); - } - else - ACE_ERROR ((LM_ERROR, - "client (%P|%t): sched_params failed\n")); - } - - ACE_TRY_NEW_ENV - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (parse_args (argc, argv) != 0) - return 1; - - CORBA::Object_var object = - orb->string_to_object (ior ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Test::Roundtrip_var roundtrip = - Test::Roundtrip::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (roundtrip.in ())) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Nil Test::Roundtrip reference <%s>\n", - ior), - 1); - } - - Test::octet_load oc; - - for (int j = 0; j < 100; ++j) - { - ACE_hrtime_t start = 0; - (void) roundtrip->test_octet_method (oc, - start - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - - // Test various sequence types - - if (ACE_OS::strcmp (data_type, "octet") == 0 ) - { - test_octet_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else if (ACE_OS::strcmp (data_type, "char") == 0) - { - test_char_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else if (ACE_OS::strcmp (data_type, "long") == 0) - { - test_long_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else if (ACE_OS::strcmp (data_type, "short") == 0) - { - test_short_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else if (ACE_OS::strcmp (data_type, "double") == 0) - { - test_double_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else if (ACE_OS::strcmp (data_type, "longlong") == 0) - { - test_longlong_seq (roundtrip.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - if (do_shutdown) - { - roundtrip->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Caught exception:"); - return 1; - } - ACE_ENDTRY; - - return 0; -} |