2012-04-03 16 views
2
long time=System.currentTimeMillis(); 
    MarketDataRequest request=new MarketDataRequest(); 
    System.out.println("First: " +(System.currentTimeMillis()-time)); 


    time=System.currentTimeMillis(); 
    request=new MarketDataRequest(); 
    System.out.println("Second: "+ (System.currentTimeMillis()-time)); 

Ergebnis:Quickfix ist langsam

Erstens: 43 Zweitens: 0

43 ms scheint sehr langsam ... keinen Grund, warum die erste Schöpfung des Objekts sooo lange dauert?

+0

Was passiert, wenn Sie eine neue MarketDataRequest ** request1 ** erstellen anstatt die alte ** Anfrage ** zuzuweisen? – DumbCoder

+0

Kein Unterschied .. –

Antwort

1

Zwei mögliche Ursachen sind das Laden von Java-Klassen und der JIT-Compiler-Overhead.

+0

Wie kann ich die Klassen laden/im Vorfeld kompilieren? –

+0

Der einfachste Weg ist, etwas ähnliches wie in Ihrem Beispiel zu tun. Erstellen Sie eine Instanz der Nachricht beim Start, damit die Klassen geladen werden, wenn Sie später eine ähnliche Nachricht senden möchten. –