# Performance einer verteilten RMI-Anwendung



## Guest (2. Dez 2005)

Hi

wie kann ich am besten die Performance einer verteilten Anwendung messen?
ich habe einen Client, der Daten an einen server zusendet, damit diese Daten dort verarbeitet werden.
Serverseitg wird für jeden Aufruf einen Thread erstellt. Der Client wartet nicht bis zum Ende dieser Verarbeitung. 
Die Verarbeitung der Daten läuft in ihrem eigenen Thread. Ich will die Zeitspanne zwischen dem Aufruf einer Serverfunktion und dem Ende des Verarbeitungsprozesses messen. Sowohl der Server als auch der Client läufen in einem JDK 1.3 compatible VM.

Ich wäre sehr dankbar für jeden Kommentar, Code Snippets und Links zu disem Thema.


----------



## Guest (4. Dez 2005)

keine einzige Anwort  ???:L 
auch keine * schau doch mal in die FAQ *


----------



## foobar (4. Dez 2005)

Miss doch die Zeit mit System.currentTimeMillis() in dem entsprechenden Thread.

Wo liegt das Problem?


----------



## Guest (4. Dez 2005)

Das Problem ist, dass ich dann irgendwie als Ergebnis ~4600ms bekomme. Seit einer Woche versuche ich herausfinden, wo das Problem liegt. Das Ergebnis, das ich mit System.currentTimeMillis() oder mit GregorianCalendar() bekomme, entspricht nicht dem, was ich mit bloßen Augen am Bildschirm sehe.


----------



## Guest (4. Dez 2005)

Anonymous hat gesagt.:
			
		

> Das Problem ist, dass ich dann irgendwie als Ergebnis ~4600ms bekomme. Seit einer Woche versuche ich herausfinden, wo das Problem liegt. Das Ergebnis, das ich mit System.currentTimeMillis() oder mit GregorianCalendar() bekomme, entspricht nicht dem, was ich mit bloßen Augen am Bildschirm sehe.


Du schreibst auch, dass es asynchron läuft.

Messe die Zeit für den Aufruf und dann getrennt auch die Zeit in den Threads auf dem Server,
dann weisst du zumindest ansatzweise, wo der Fehler zu suchen ist.

clientseitig
	
	
	
	





```
long time = System.currentTimeMillis();
server.processFile(...)
System.out.println("call: " + (System.currentTimeMillis() - time));
```
serverseitig
	
	
	
	





```
public void processFile(...) throws ... {
  new Thread( new Runnable() {
    public void run() {
      long time = System.currentTimeMillis();
      ... was auch immer
      System.out.println("thread: " + (System.currentTimeMillis() - time));
    }
  }).start();
}
```


----------

