uka.gm
Class GMServerBench

java.lang.Object
  extended byuka.gm.GMServerBench

public class GMServerBench
extends java.lang.Object

ping-pong: - Der Klient sendet ein Datenpacket der angegebenen Größe zum Server und wartet so lange, bis er die Antwort vom Server erhalten hat. Der Server empfängt das Paket und schick es sofort zurück. - Die Zeit ist die Dauer vom Schicken eines Datenpaketes durch den Klienten bis zum Wiederempfangen beim Klienten. - Die Durchsatzrate ist die vom Klienten gesendete Datenmenge geteilt durch die Zeit bis zu ihrem Wiederempfang. ping-ack: - Wie ping-pong, mit dem Unterschied, dass der Server statt des empfangenen Datenpaketes lediglich ein einzelnes Byte zur Bestätigung zurücksendet. - Die Durchsatzrate ist die zum Server übertragene Datenmenge geteilt durch die Zeit bis zum Eintreffen der Antwort vom Server. - Dieser Benchmark ist eine Simulation dessen, was bestenfalls in einer Folge von synchronen Methodenaufrufen zum Server übertragen werden kann. exchange: - Client und Server führen die selbe Sende-Empfangsoperation aus. Beide senden zuerst die angegebene Datenmenge zum jeweils anderen und empfangen anschliessend die gesendeten Daten des Gegenüber. - Die angegebene Zeit ist die Dauer vom Senden der Daten bis zum Empfangen der Daten des Gegenüber. Der Unterschied zu ping-pong besteht darin, dass die Antwort vom Server schon geschickt wird, während er die Daten vom Klienten noch gar nicht empfangen hat. - Die Durchsatzrate ist die zum Server übertragene Datenmenge geteilt durch die Zeit vom Senden der Daten des Klienten bis zum Empfangen der Daten vom Server. - Der Benchmark testet die Fähigkeit des Netzwerkes kollisionsfrei zu übermitteln. send-receive: - Der Klient sendet Daten der angegebenen Paketgröße, ohne auf eine Antwort des Servers zu warten. Erst nach dem Abschicken aller Pakete wird eine Antwort des Servers erwartet, die das Ankommen aller Pakete bestätigt. - Die angegebene Zeit ist die Dauer vom Senden des ersten Paketes bis zum Empfang der Abschlussquittung vom Server geteilt durch die Anzahl der gesendeten Pakete. - Die Durchsatzrate ist die insgesamt gesendete Datenmenge geteilt durch die Zeit bis zur Ankunft der Bestätigung vom Server. - Der Benchmark simmuliert die mögliche Übertragungsrate in eimem asynchronen Kommunikationsvorgang. Messwerte Dual PentiumIII 800MHz, SUN-JDK/1.3.0, 27.04.2001 ping-pong 1b : 24.311us +- 0.018us 0.039MB/s ping-pong 16b : 24.977us +- 0.023us 0.611MB/s ping-pong 64b : 26.606us +- 0.000us 2.294MB/s ping-pong 128b : 30.286us +- 0.026us 4.031MB/s ping-pong 256b : 36.890us +- 0.032us 6.618MB/s ping-pong 512b : 43.947us +- 0.038us 11.111MB/s ping-pong 1024b : 57.202us +- 0.000us 17.072MB/s ping-pong 2048b : 84.408us +- 0.000us 23.139MB/s ping-pong 4080b : 145.524us +- 0.108us 26.738MB/s ping-ack 1b : 24.268us +- 0.000us 0.039MB/s ping-ack 16b : 24.620us +- 0.000us 0.620MB/s ping-ack 64b : 25.439us +- 0.017us 2.399MB/s ping-ack 128b : 27.291us +- 0.018us 4.473MB/s ping-ack 256b : 30.611us +- 0.021us 7.976MB/s ping-ack 512b : 34.125us +- 0.000us 14.309MB/s ping-ack 1024b : 40.702us +- 0.035us 23.993MB/s ping-ack 2048b : 54.220us +- 0.037us 36.022MB/s ping-ack 4080b : 84.837us +- 0.057us 45.864MB/s exchange 1b : 17.358us +- 0.015us 0.055MB/s exchange 16b : 17.653us +- 0.024us 0.864MB/s exchange 64b : 17.790us +- 0.015us 3.431MB/s exchange 128b : 18.350us +- 0.017us 6.652MB/s exchange 256b : 20.127us +- 0.028us 12.130MB/s exchange 512b : 26.240us +- 0.043us 18.608MB/s exchange 1024b : 33.677us +- 0.000us 28.997MB/s exchange 2048b : 49.165us +- 0.061us 39.726MB/s exchange 4080b : 83.156us +- 0.215us 46.792MB/s send-receive 1b : 8.800us +- 0.000us 0.108MB/s send-receive 16b : 8.811us +- 0.008us 1.732MB/s send-receive 64b : 8.891us +- 0.008us 6.865MB/s send-receive 128b : 8.957us +- 0.006us 13.628MB/s send-receive 256b : 9.206us +- 0.008us 26.521MB/s send-receive 512b : 9.568us +- 0.007us 51.032MB/s send-receive 1024b : 10.311us +- 0.000us 94.707MB/s send-receive 2048b : 11.614us +- 0.010us 168.169MB/s send-receive 4080b : 19.897us +- 0.014us 195.557MB/s

Author:
Bernhard Haumacher

Nested Class Summary
static class GMServerBench.Client
           
static class GMServerBench.CtrlMsg
           
static class GMServerBench.Server
           
 
Field Summary
(package private) static long allBytes
           
static byte BENCH_EXCHANGE
           
static byte BENCH_EXIT
           
static byte BENCH_PINGACK
           
static byte BENCH_PINGPONG
           
static byte BENCH_SENDRECEIVE
           
static int CTRL_SERVER_PORT
           
static boolean DO_EXCHANGE
           
static boolean DO_PING_ACK
           
static boolean DO_PING_PONG
           
static boolean DO_SEND_RECEIVE
           
(package private) static GM.UID peer
           
static int SERVER_PORT
           
(package private) static int[] sizes
           
(package private) static int startSize
           
(package private) static int stopSize
           
 
Constructor Summary
GMServerBench()
           
 
Method Summary
static void main(java.lang.String[] args)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CTRL_SERVER_PORT

public static final int CTRL_SERVER_PORT
See Also:
Constant Field Values

SERVER_PORT

public static final int SERVER_PORT
See Also:
Constant Field Values

BENCH_PINGPONG

public static final byte BENCH_PINGPONG
See Also:
Constant Field Values

BENCH_PINGACK

public static final byte BENCH_PINGACK
See Also:
Constant Field Values

BENCH_EXCHANGE

public static final byte BENCH_EXCHANGE
See Also:
Constant Field Values

BENCH_SENDRECEIVE

public static final byte BENCH_SENDRECEIVE
See Also:
Constant Field Values

BENCH_EXIT

public static final byte BENCH_EXIT
See Also:
Constant Field Values

allBytes

static long allBytes

peer

static GM.UID peer

sizes

static int[] sizes

startSize

static int startSize

stopSize

static int stopSize

DO_PING_PONG

public static boolean DO_PING_PONG

DO_PING_ACK

public static boolean DO_PING_ACK

DO_EXCHANGE

public static boolean DO_EXCHANGE

DO_SEND_RECEIVE

public static boolean DO_SEND_RECEIVE
Constructor Detail

GMServerBench

public GMServerBench()
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception