2016-01-26 2 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 кажется немного медленнее. –

Смежные вопросы