diff options
Diffstat (limited to 'performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp')
-rw-r--r-- | performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp | 92 |
1 files changed, 34 insertions, 58 deletions
diff --git a/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp b/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp index 11f6d16bad5..189748a2cbe 100644 --- a/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp +++ b/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp @@ -82,7 +82,6 @@ ACE_INET_Addr address; #define bzero(b1,n) memset(b1,0,n) #include <sys/times.h> #include <sys/param.h> - struct rusage { struct timeval ru_utime, ru_stime; @@ -194,10 +193,8 @@ int mread (int fd, register char *bufp, unsigned n); int Nread (ACE_SOCK_Stream &s, void *buf, int count); int Nwrite (ACE_SOCK_Stream &s, void *buf, int count); -#if !defined (__cplusplus) +#if !defined (__cplusplus) typedef void (*SIG_TYP)(); -#else -typedef void (*SIG_TYP)(int); #endif #ifdef SVR4 @@ -210,11 +207,6 @@ sigpipe () { } -void sigpipe(int foo) -{ - printf("Caught signal %d\n", foo); -} - char *title = 0; int new_line = 0; @@ -225,7 +217,6 @@ main (int argc, char *argv[]) unsigned long addr_tmp; int c; - printf("HZ = %d\n", HZ); if (argc < 2) goto usage; @@ -378,6 +369,12 @@ main (int argc, char *argv[]) /* the transmitter will set options and connect to receiver */ if (trans) { + if (connector_factory.connect (connection_stream, address) == -1) + perror ("connection failed"), exit (1); + fprintf (stdout, + "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", + data_buf_len, nbuf, bufalign, bufoffset, port); + // turn off weird ack things if (nodelay) { @@ -390,12 +387,6 @@ main (int argc, char *argv[]) err ("setsockopt: nodelay"); mes ("nodelay"); } - if (connector_factory.connect (connection_stream, address) == -1) - perror ("connection failed"), exit (1); - fprintf (stdout, - "ttcp-t: data_buf_len=%d, nbuf=%d, align=%d/%d, port=%d", - data_buf_len, nbuf, bufalign, bufoffset, port); - if (sockbufsize) { if (connection_stream.set_option (SOL_SOCKET, @@ -413,6 +404,13 @@ main (int argc, char *argv[]) if (acceptor_factory.open (address, 1) == -1) perror ("acceptor open"), exit (1); + ACE_INET_Addr remote_address; + + if (acceptor_factory.accept (connection_stream, + (ACE_Addr *) &remote_address) == -1) + perror ("acceptor accept"), exit (1); + + // set the window size if (sockbufsize) { if (connection_stream.set_option (SOL_SOCKET, @@ -423,14 +421,6 @@ main (int argc, char *argv[]) mes ("rcvbuf"); } - ACE_INET_Addr remote_address; - - if (acceptor_factory.accept (connection_stream, - (ACE_Addr *) &remote_address) == -1) - perror ("acceptor accept"), exit (1); - - // set the window size - fprintf (stderr, "ttcp-r: accept from %s\n", remote_address.get_host_name()); } } @@ -473,7 +463,6 @@ main (int argc, char *argv[]) if (ack != data_buf_len) ACE_DEBUG ((LM_DEBUG, "%received ack for only %d bytes\n", ack)); } - printf("Client finished. \n"); } else { @@ -513,12 +502,11 @@ main (int argc, char *argv[]) ACE_ERROR_RETURN ((LM_ERROR, "%p send ack failed\n", "ttcp"), -1); } - printf("Server finished. \n"); } - /* if (errno) + if (errno) err ("IO"); - */ + // // stop the timer // @@ -676,15 +664,11 @@ prep_timer () { itime0.it_interval.tv_sec = 0; itime0.it_interval.tv_usec = 0; - // itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_sec = 3600; + itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ itime0.it_value.tv_usec = 0; getrusage (RUSAGE_SELF, &ru0); - fprintf(stdout, "\n"); - fprintf(stdout, "beginning user time = %d sec and %d usec\n", ru0.ru_utime.tv_sec, ru0.ru_utime.tv_usec); - fprintf(stdout, "beginning sys time = %d sec and %d usec\n", ru0.ru_stime.tv_sec, ru0.ru_stime.tv_usec); /* Init REAL Timer */ if (setitimer (ITIMER_REAL, &itime0, NULL)) @@ -692,7 +676,7 @@ prep_timer () perror ("Setting 'itimer' REAL failed"); return; } - fprintf(stdout, "Beginning transaction time = %d sec and %d usec\n", itime0.it_value.tv_sec, itime0.it_value.tv_usec); + } /* @@ -709,16 +693,13 @@ read_timer (char *str, int len) char line[132]; getrusage (RUSAGE_SELF, &ru1); - fprintf(stdout, "final user time = %d sec and %d usec\n", ru1.ru_utime.tv_sec, ru1.ru_utime.tv_usec); - fprintf(stdout, "final sys time = %d sec and %d usec\n", ru1.ru_stime.tv_sec, ru1.ru_stime.tv_usec); if (getitimer (ITIMER_REAL, &itimedol)) { perror ("Getting 'itimer' REAL failed"); return (0.0); - } - fprintf(stdout, "End transaction time = %d sec and %d usec\n", itimedol.it_value.tv_sec, itimedol.it_value.tv_usec); + prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); (void) strncpy (str, line, len); @@ -738,7 +719,7 @@ read_timer (char *str, int len) static void prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *b, struct timeval *e, char *outp) + struct timeval *e, struct timeval *b, char *outp) { struct timeval tdiff; register time_t t; @@ -746,11 +727,11 @@ prusage (register struct rusage *r0, struct rusage *r1, register int i; int ms; - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 1000 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 100000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 1000 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 100000; - ms = -((e->tv_sec - b->tv_sec) * 1000 + (e->tv_usec - b->tv_usec) / 1000);/* in milliseconds */ + t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + + (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + + (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + + (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; + ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; #define END(x) {while(*x) x++;} #if defined(SYSV) @@ -759,8 +740,7 @@ prusage (register struct rusage *r0, struct rusage *r1, #if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; #else - cp = "%Uutime %Sstime %Edtime %P cpu occupancy"; - /* cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw";*/ + cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; #endif #endif for (; *cp; cp++) @@ -773,25 +753,23 @@ prusage (register struct rusage *r0, struct rusage *r1, case 'U': tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - /* sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec);*/ - sprintf (outp, "%f", (tdiff.tv_sec + tdiff.tv_usec/1000000.0)); + sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); END (outp); break; case 'S': tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - /* sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec);*/ - sprintf (outp, "%f", (tdiff.tv_sec + tdiff.tv_usec/1000000.0)); + sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); END (outp); break; case 'E': - psecs (ms / 1000, outp); + psecs (ms / 100, outp); END (outp); break; case 'P': - sprintf (outp, "%f%%", (t * 100.0 / ((ms ? ms : 1)))); + sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); END (outp); break; @@ -883,22 +861,21 @@ psecs (long l, register char *cp) i = l / 3600; if (i) { - sprintf (cp, "%d hours", i); + sprintf (cp, "%d:", i); END (cp); i = l % 3600; - sprintf (cp, "%d minutes ", (i / 60)); - sprintf (cp, "%d seconds ", (i % 60)); + sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); END (cp); } else { i = l; - sprintf (cp, "%d minutes ", i / 60); + sprintf (cp, "%d", i / 60); END (cp); } i %= 60; *cp++ = ':'; - sprintf (cp, "%d seconds ", i); + sprintf (cp, "%d%d", i / 10, i % 10); } /* @@ -964,4 +941,3 @@ mread (int fd, register char *bufp, unsigned n) return ((int) count); } - |