2012-04-03 38 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