2012-04-03 82 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)); 

結果:的QuickFix緩慢

第一:43 第二:0

,持續時間43ms,似乎很慢......任何理由對象的第一個創建需要的sooo長?

+0

當您創建新的MarketDataRequest ** request1 **而不是分配給舊**請求**時會發生什麼? – DumbCoder 2012-04-03 15:40:07

+0

沒有區別.. – 2012-04-04 23:29:46

回答

1

兩個可能的原因是Java類加載和JIT編譯器開銷。

+0

如何預先加載類/編譯? – 2012-04-04 23:30:10

+0

最簡單的方法是做一些類似於你的例子的東西。在啓動時創建消息的實例,以便稍後您想要發送類似消息時加載類。 – 2012-04-05 10:36:23