如何通过进行一次 API 调用而不是多次调用来提高 Angular/Node 性能?
How can I increase Angular/Node performance by making one API call instead of several?
使用 Angular/Node 构建概念验证项目。我已经完成了第一个任务 "making it work." 由于 MVP 有效,我现在需要关注性能。延迟真的很糟糕,我不知道如何处理或修复它。尝试了各种方法都没有成功。
概览:
使用节点服务器为 JSON 格式的数据调用外部 API。使用 Angular 服务进行 5 次 API 调用并在 Angular 控制器上呈现数据。有没有办法让我只能拨打一个 API 电话,而不是 5 个?由于它进行了 5 API 调用,服务器端的 CPU 处理为 90%,以下是客户端性能:
如果收集一次 API 调用的结果需要 X 时间,那么您将不得不 X * 5 次来收集五个 API 调用的结果。如果您不能更改 API 来合并它,至少您可以通过同时发送所有五个 API 调用来减少等待网络往返的时间(即一个接一个地发送,异步)。
也就是说,如果 X = (N * 2) + P 两倍的网络传输,加上处理,那么你会看到像 (N * 2) 而不是 5 * ((N * 2) + P) ) + (5 * P)。可能仍然是服务器一次处理一个,但您没有请求之间的网络旅行时间。
如果服务器不忙,并且有多个核心,并且是多线程或多进程,并且数据库锁定对您有利,您可能会看到五个竞争请求和 5 * P 之间的一些并发可能会更少。
使用 Angular/Node 构建概念验证项目。我已经完成了第一个任务 "making it work." 由于 MVP 有效,我现在需要关注性能。延迟真的很糟糕,我不知道如何处理或修复它。尝试了各种方法都没有成功。
概览:
使用节点服务器为 JSON 格式的数据调用外部 API。使用 Angular 服务进行 5 次 API 调用并在 Angular 控制器上呈现数据。有没有办法让我只能拨打一个 API 电话,而不是 5 个?由于它进行了 5 API 调用,服务器端的 CPU 处理为 90%,以下是客户端性能:
如果收集一次 API 调用的结果需要 X 时间,那么您将不得不 X * 5 次来收集五个 API 调用的结果。如果您不能更改 API 来合并它,至少您可以通过同时发送所有五个 API 调用来减少等待网络往返的时间(即一个接一个地发送,异步)。
也就是说,如果 X = (N * 2) + P 两倍的网络传输,加上处理,那么你会看到像 (N * 2) 而不是 5 * ((N * 2) + P) ) + (5 * P)。可能仍然是服务器一次处理一个,但您没有请求之间的网络旅行时间。
如果服务器不忙,并且有多个核心,并且是多线程或多进程,并且数据库锁定对您有利,您可能会看到五个竞争请求和 5 * P 之间的一些并发可能会更少。