如何提高 Guice 启动时的性能

2024-06-08

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

我的 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),创建一个需要 100 多毫秒Injector with Guice.createInjector()并且没有模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提高 Guice 启动时的性能 的相关文章

随机推荐