uka.gm
Class GMServerBench
java.lang.Object
uka.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
|
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 |
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
GMServerBench
public GMServerBench()
main
public static void main(java.lang.String[] args)
throws java.lang.Exception
- Throws:
java.lang.Exception