java – 如何在启动时提高Guice性能

前端之家收集整理的这篇文章主要介绍了java – 如何在启动时提高Guice性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

好吧,我知道我的计算是不客观的等等,但无论如何,我讨厌在执行我的单元测试时等待这么多时间:

我的guice swing应用程序初始化大约需要7秒钟.这是一个简单的IRC客户端.那时,没有连接打开,我甚至还没有调用任何java.io或java.net类.我试图缩小究竟是什么错误,我得到了Guice使用的5.8秒(平均值),以便用我正在使用的2个模块创建注入器(一个普通模块和一个用FactoryModuleBuilder构建,安装在其中原始模块).

当我删除所有模块(所以基本上只调用Guice.createInjector())时,它仍然需要3.5秒.

我使用的Guice版本是3.0 rc2.我的电脑肯定不是最新的,但它仍然不超过3年.

那么如果可能的话,我怎样才能提高Guice的表现呢?

作为参考,这是我正在使用的主要方法,导致3.5秒.后续通话需要0.01秒

public static void main(String[] args) {

    long t = System.currentTimeMillis();
    Injector injector = Guice.createInjector();
    long t1 = System.currentTimeMillis();
    System.out.println(((t1 - t)) / 1000.0);
}

结果

3.578
最佳答案
>您不应该在单元测试中使用Guice.如果你确实需要使用它,它们可能不是真正的单元测试(单独测试的东西),或者你没有正确使用Guice或两者兼而有之.
> Guice绝对不应该花费任何时间来启动,除非你的代码中有什么东西导致奇怪的东西.在我的机器上(使用3.0 rc2),使用Guice.createInjector()创建一个Injector并且没有模块需要100多分钟.

猜你在找的Java相关文章