【问题标题】:Why is hello-world example project so slow to startup in micronaut?为什么 hello-world 示例项目在 micronaut 中启动如此缓慢?
【发布时间】:2018-10-25 09:08:19
【问题描述】:

Micronaut 需要大约 75 秒来启动它的 hello-world 示例项目是否正常?这似乎与描述框架的方式大相径庭。我在具有不错规格的 MacBook Pro 上运行它,并且该项目是按照 Micronaut 用户指南中的步骤创建的,没有任何自定义。无论我是从我的 IDE 还是从 uber jar 开始,都会发生同样的情况。

java -jar ./libs/hello-world-0.1-all.jar
04:53:39.715 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 76248ms. Server Running: http://localhost:8080

FWIW,我对 Micronaut 很感兴趣,因为几个月前我偶然发现了它,部分原因是 Spring 变得过于臃肿,我正在寻找替代品。我计划构建一个简单的 REST 服务并将其与 SpringBoot 中的相同服务进行比较,但我认为这种缓慢是一个障碍。

起初我在想这可能是注释处理器在做他们的 IOC 工作,但这不可能是罪魁祸首,因为使用 uber jar 的速度一样慢,不应该产生这种成本。有什么想法吗?

【问题讨论】:

  • "起初我在想这可能是注释处理器在做他们的 IOC 工作,但这不是罪魁祸首,因为使用 uber jar 的速度一样慢,这不应该引起这种情况成本。” - 在运行时根本不涉及注释处理器。我们的注解处理器在编译时被调用。
  • 如果您正在使用 uber jar 或使用 ./gradlew run./mvnw exec:exec 之类的东西运行,这是正确的。注释处理不是任何这些场景的启动时间的一部分。

标签: micronaut


【解决方案1】:

检查您的主机名:

hostname

并将其添加到/etc/hosts 以获取127.0.0.1::1 地址。

根据 Micronaut 的官方指南,当 /etc/hosts 文件中不存在主机名时,在 Mac OS 上调用 java.net.InetAddress.getLocalHost() 时,存在一个已知错误会导致延迟。

/etc/hosts

127.0.0.1       localhost <hostname>
::1             localhost <hostname>

https://docs.micronaut.io/latest/guide/index.html#problems

【讨论】:

  • 感谢两位的回答。您的建议奏效并解决了问题...启动现在大约 1 秒。我期待现在运行我的初始实验,将新框架与 SpringBoot 进行比较,看看它是否更适合我们的一些用例。 --- java -jar ./libs/hello-world-0.1-all.jar 18:25:26.524 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 911ms. Server Running: http://localhost:8080
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
相关资源
最近更新 更多