summaryrefslogtreecommitdiff
path: root/TAO/performance-tests/POA/Demux/demux_stats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/performance-tests/POA/Demux/demux_stats.cpp')
-rw-r--r--TAO/performance-tests/POA/Demux/demux_stats.cpp346
1 files changed, 0 insertions, 346 deletions
diff --git a/TAO/performance-tests/POA/Demux/demux_stats.cpp b/TAO/performance-tests/POA/Demux/demux_stats.cpp
deleted file mode 100644
index 6b96b76692b..00000000000
--- a/TAO/performance-tests/POA/Demux/demux_stats.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// TAO/performance-tests/Demux
-//
-// = FILENAME
-// demux_stats.cpp
-//
-// = AUTHOR
-//
-// Vishal Kachroo
-//
-// ============================================================================
-
-#include <math.h>
-#include <ace/Get_Opt.h>
-#include <tao/corba.h>
-
-class Demux_Stats
-{
-
-public:
-
- int
- calculate_avg_latency (void);
- // Calculates the average latency and Standard deviation.
- // Expects the input data in my_results.dat.
-
- int
- Demux_Stats::parse_args (int argc_, char * argv_ []);
- // parses args.
-
-private :
-
- FILE *result_fp_;
- // temporary results file.
-
- int iterations;
-};
-
-
-// parse command line arguments (if any).
-int
-Demux_Stats::parse_args (int argc_, char * argv_ [])
-{
-
- ACE_Get_Opt get_opts (argc_, argv_, "i:");
- int c;
-
- iterations = 0;
- while ((c = get_opts ()) != -1)
- switch (c)
- {
- case 'i':
- iterations = atoi (get_opts.optarg);
- break;
- }
-
- return 0;
-}
-
-
-int
-Demux_Stats::calculate_avg_latency ()
-{
-
- CORBA::ULong i, time;
- char str1[50], str2[50], str3[50];
-
- double temp, mean_poa, mean_servant, mean_dispatch, mean_perfect, mean_dynamic, mean_binary, mean_linear, mean_parse;
- double deviation_poa, deviation_servant, deviation_dispatch;
- double std_deviation_poa, std_deviation_servant, std_deviation_dispatch;
- double sum_poa_temp, sum_servant_temp, sum_dispatch_temp;
- double time_temp, items_temp;
-
- double items;
- CORBA::ULong sum_poa, sum_servant, sum_dispatch, last_poa_time=0, last_servant_time=0, last_dispatch_time=0;
- CORBA::ULong sum_linear, sum_dynamic, sum_binary, sum_perfect, sum_parse;
- CORBA::ULong last_dynamic_time=0, last_linear_time=0, last_perfect_time=0, last_binary_time=0, last_parse_time = 0;
-
- int counter;
-
- if ((this->result_fp_ = ACE_OS::fopen ("my_results.dat", "r")) == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "Demux_Test_Client::print_results - "
- "Failed to open the results file for reading\n"),
- -1);
- }
-
- sum_poa = 0;
- sum_servant = 0;
- sum_dispatch = 0;
- sum_dynamic = 0;
- sum_linear = 0;
- sum_perfect = 0;
- sum_binary = 0;
- sum_parse = 0;
-
- items = 0;
- counter = 0;
-
- while (fscanf (this->result_fp_, "%s %s %s %ld %ld", &str1, &str2, &str3, &i, &time) != EOF)
- {
-
- if(strcmp (str1,"POA::locate_poa_i")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items = items + 1; counter++; }
- else
- {
- sum_poa += time;
- last_poa_time = time;
- items = items + 1;
- ++counter;
- }
- }
-
- if(strcmp (str1,"POA::find_servant")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items = items + 1; counter++; }
- else
- {
- sum_servant += time;
- last_servant_time = time;
- items = items + 1;
- counter++;
- }
- }
-
- if(strcmp (str1,"Servant::_dispatch")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { ++items; counter++; }
- else
- {
- sum_dispatch += time;
- last_dispatch_time = time;
- ++items;items++;
- counter++;
- }
- }
- if(strcmp (str1,"TAO_Dynamic_Hash_OpTable::find")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { ++items; counter++; }
- else
- {
- sum_dynamic += time;
- last_dynamic_time = time;
- ++items;
- counter++;
- }
- }
-
- if(strcmp (str1,"TAO_Linear_Search_OpTable::find")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items++; counter++; }
- else
- {
- sum_linear += time;
- last_linear_time = time;
- items++;
- counter++;
- }
- }
- if(strcmp (str1,"TAO_Perfect_Hash_OpTable::find")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items++; counter++; }
- else
- {
- sum_perfect += time;
- last_perfect_time = time;
- items++;
- counter++;
- }
- }
- if(strcmp (str1,"TAO_Binary_Search_OpTable::find")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items++; counter++; }
- else
- {
- sum_binary += time;
- last_binary_time = time;
- items++;
- counter++;
- }
- }
- if(strcmp (str1,"POA::parse_key")==0 && (strcmp (str3,"end") == 0))
- {
- if (items < 1) { items++; counter++; }
- else
- {
- sum_parse += time;
- last_parse_time = time;
- items++;
- counter++;
- }
- }
-
- if (iterations !=0 )
- {
- if (counter == iterations)
- {
-
- mean_poa = sum_poa/items;
- mean_servant = sum_servant/items;
- mean_dispatch = sum_dispatch/items;
- mean_dynamic = sum_dynamic/items;
- mean_linear = sum_linear/items;
- mean_binary = sum_binary/items;
- mean_perfect = sum_perfect/items;
- printf("Average response times = POA = %lf SERVANT = %lf DISPATCH = %lf PERFECT = %lf DYNAMIC = %lf BINARY = %lf LINEAR = %lf microsec\n", mean_poa,
- mean_servant,
- mean_dispatch,
- mean_perfect,
- mean_dynamic,
- mean_binary,
- mean_linear
- );
- sum_poa = 0;
- sum_servant = 0;
- sum_dispatch = 0;
- sum_dynamic = 0;
- sum_linear = 0;
- sum_perfect = 0;
- sum_binary = 0;
-
- items = 0;
- counter = 0;
- }
- }
- }
-
- ACE_OS::fclose (this->result_fp_);
-
-if (iterations == 0)
- {
- sum_poa -= last_poa_time;
- sum_servant -= last_servant_time;
- sum_dispatch -= last_dispatch_time;
- sum_dynamic -= last_dynamic_time;
- sum_linear -= last_linear_time;
- sum_perfect -= last_perfect_time;
- sum_binary -= last_binary_time;
- sum_parse -= last_parse_time;
-
- //items = items - 4;
-
- items = items - 2;
-
- mean_poa = sum_poa/items;
- mean_servant = sum_servant/items;
- mean_dispatch = sum_dispatch/items;
- mean_dynamic = sum_dynamic/items;
- mean_linear = sum_linear/items;
- mean_binary = sum_binary/items;
- mean_perfect = sum_perfect/items;
- mean_parse = sum_parse/items;
- }
-
- // now compute standard deviation
-
-
- if ((this->result_fp_ = ACE_OS::fopen ("my_results.dat", "r")) == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "Demux_Test_Client::print_results - "
- "Failed to open the results file for reading\n"),
- -1);
- }
-
-
- sum_poa_temp = 0;
- sum_servant_temp = 0;
- sum_dispatch_temp = 0;
-
- deviation_poa = 0.0;
- deviation_servant = 0.0;
- deviation_dispatch = 0.0;
-
- while (fscanf (this->result_fp_, "%s %s %s %ld %ld", &str1, &str2, &str3, &i, &time) != EOF)
- {
- time_temp = (double) time;
-
- if(strcmp (str1,"POA::locate_poa_i")==0 && (strcmp (str3,"end") == 0))
- {
- deviation_poa = time_temp - mean_poa;
- sum_poa_temp += deviation_poa * deviation_poa;
- }
-
- if(strcmp (str1,"POA::find_servant")==0 && (strcmp (str3,"end") == 0))
- {
- deviation_servant = time_temp - mean_servant;
- sum_servant_temp += deviation_servant * deviation_servant;
- }
-
- if(strcmp (str1,"Servant::_dispatch")==0 && (strcmp (str3,"end") == 0))
- {
- deviation_dispatch = time_temp - mean_dispatch;
- sum_dispatch_temp += deviation_dispatch * deviation_dispatch;
- }
- }
-
- items_temp = (double) items;
-
- if (items == 1)
- {
- std_deviation_poa = 0;
- std_deviation_servant = 0;
- std_deviation_dispatch = 0;
- }
- else
- {
- std_deviation_poa = sqrt (sum_poa_temp/(items_temp - 1));
- std_deviation_servant = sqrt (sum_servant_temp/(items_temp - 1));
- std_deviation_dispatch = sqrt (sum_dispatch_temp/(items_temp - 1));
- }
-
- // ACE_OS::unlink ("my_results.dat");
- ACE_OS::fclose (this->result_fp_);
-
- if (iterations == 0)
- {
-
- printf("Average response times = POA = %lf SERVANT = %lf DISPATCH = %lf PERFECT = %lf DYNAMIC = %lf BINARY = %lf LINEAR = %lf PARSE = %lf microsec\n", mean_poa, mean_servant,
- mean_dispatch,
- mean_perfect,
- mean_dynamic,
- mean_binary,
- mean_linear,
- mean_parse
- );
-
- }
-
- return 0;
- }
-
-int
-main (int argc, char *argv [])
-{
- Demux_Stats demux_stats;
-
- demux_stats.parse_args (argc, argv);
- demux_stats.calculate_avg_latency ();
-
-}