【问题标题】:How much faster is Dagger compared to Guice or Spring when run in AWS Lambda?在 AWS Lambda 中运行时,Dagger 与 Guice 或 Spring 相比要快多少?
【发布时间】:2020-03-02 23:54:01
【问题描述】:

Stackoverflow 和其他地方的许多人指出 Dagger 是首选的依赖注入框架:

但是,当在 AWS Lambda 或其他无服务器等价物中运行时,Dagger 在实践中要快多少?是否有确切的数字可以帮助开发人员做出具体决定?

【问题讨论】:

  • 速度对于 DI 框架来说很少是一个有趣的指标。我真正听到过关于性能的讨论的唯一场景是在你希望 UI 尽可能活泼的 android 上。如果您选择 DI 框架,我会完全忽略性能方面。 Dagger 在 Guice/Spring 上有一个客观的优势,那就是绑定的编译时验证。还有一些缺点。
  • @al3c 假设我的代码在持续部署周期中进行了测试,并且可以在到达客户之前发现运行时问题,那么 Dagger 还有其他好处吗?

标签: spring dependency-injection aws-lambda guice dagger-2


【解决方案1】:

关于 Dagger2 的原始讨论之一特别指出服务器的性能正在改进,请参阅 https://youtu.be/oK_XtfXPkqw?t=1564(链接应将您带到视频中第一次讨论的 26:04)。在这种情况下,成本大约是每个请求所需的对象图。 典型的服务器设置倾向于连接它们的主要对象图来处理一次请求,但是这部分讨论特别提到了长期运行服务上的每个请求图。

另一方面,AWS Lambda 不是用于长时间运行的服务器,而是用于短期运行的任务(与 Android 应用程序不同),因此将启动时间保持在最短以创建对象图可能很有意义。

更多关于在服务器上运行的性能讨论,稍后在同一谈话中https://youtu.be/oK_XtfXPkqw?t=2121(时间戳 35:21) - 引用的他们的服务器时间节省的数字比依赖反射的工具节省了 13%。似乎值得考虑 - 但您必须衡量自己的收益才能确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2020-06-04
    • 1970-01-01
    相关资源
    最近更新 更多