TypeTag对象初始化需要多于一秒的时间是正常的吗?

时间:2016-01-26 20:20:48

标签: performance scala reflection scala-2.11

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 个答案:

答案 0 :(得分:1)

调试显示了这么长的内容:

var hover_menu = function(){
    var $parent = $(this);
    var $menu_block = $('#' + $parent.data('menu-block'));


    if ($menu_block.not(':visible')) {
       $('.menu-in:visible').not($menu_block).slideOut('slow');
       $menu_block.slideIn('slow');
    }
}
$('.row-menu').on( 'mouseover', hover_menu );

new runtime.JavaUniverse

我也测试过正常的TypeTag用法也表现出相同的行为。

由于它是由懒惰val的初始化引起的,因此在启动时引用它似乎是一种避免在首次使用时暂停的合理方法。