【问题标题】:How can I increase Angular/Node performance by making one API call instead of several?如何通过一次 API 调用而不是多次调用来提高 Angular/Node 性能?
【发布时间】:2016-10-23 12:56:56
【问题描述】:

使用 Angular/Node 构建概念验证项目。我已经完成了“让它发挥作用”的第一项任务。由于 MVP 有效,我现在需要关注性能。延迟真的很糟糕,我不知道如何处理或修复它。尝试了各种方法,但没有成功。

概述:

使用 Node Server 为 JSON 格式的数据调用外部 API。使用 Angular Service 进行 5 次 API 调用并在 Angular 控制器上渲染数据。有没有办法我只能进行一次 API 调用而不是 5 次?由于它进行了 5 次 API 调用,因此服务器端的 CPU 处理率为 90%,以下是客户端性能:

【问题讨论】:

  • 为什么要打5个电话?您不能一次调用返回所有数据吗?或者,如果出于某种原因需要 5 个单独的 API,为什么不制作第 6 个 API,将所有其他 5 个 API 整合到一个调用中。

标签: javascript angularjs node.js api angular-services


【解决方案1】:

如果收集一个 API 调用的结果需要 X 时间,那么您会遇到 X * 5 次来收集五个 API 调用的结果。如果您无法更改 API 以整合它,至少您可以通过同时发送所有五个 API 调用(即一个接一个,异步地)来减少等待跨网络的往返行程。

也就是说,如果 X = (N * 2) + P 是网络行程的两倍,加上处理,那么你可以看到类似 (N * 2) + 的东西,而不是 5 * ((N * 2) + P) (5 * P)。可能仍然是服务器一次处理一个,但是您在请求之间没有网络上的旅行时间。

如果服务器不忙,并且有多个内核,并且是多线程或多进程,并且数据库锁定对您有利,您可能会看到五个竞争请求之间存在一些并发性,并且 5 * P 可能是少。

【讨论】:

  • 感谢您以精心设计的形式对此进行了解释。最终在 1 中整合 API 调用。
猜你喜欢
  • 2014-04-13
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
相关资源
最近更新 更多