2016-01-26 41 views
1

TypeTag当第一次在代码中引用需要加载和初始化超过一秒钟在我的电脑上。TypeTag对象是否需要一秒以上才能初始化是否正常?

import scala.reflect.runtime.universe.TypeTag 

object Boot extends App { 
    val start = System.currentTimeMillis() 
    TypeTag 
    println(System.currentTimeMillis() - start) 
} 

是正常:

的时间可以通过调用下面的代码来测量? 如果是,初始化这个对象的最佳方法是什么,应该在我的应用程序的一些启动初始化代码中引用它?我已经经历了一些模糊的超时,因为这个对象在应用程序内部代码中第一次被引用。

我正在使用scala 2.11.7。

回答

1

调试显示了正在此长为:

new runtime.JavaUniverse 

package object runtime { 
    // ... 
    lazy val universe: api.JavaUniverse = new runtime.JavaUniverse 

我还测试正常TypeTag使用也显示了相同的行为。

由于它是由惰性val的初始化引起的,因此在启动时引用它看起来像是避免在第一次使用时暂停的合理方法。

+0

2.12似乎有点慢。 –

相关问题