对比数量与Payload,同时扩展现代Javascript项目哪个更重要?

Nar*_*ren 14 javascript performance json javascript-objects reactjs

当然,较少的有效载荷等于较少的物体数量,但请阅读下面的整个说明.

在现代浏览器上扩展javascript项目哪个更重要?数据有效负载的大小或内存中javascript对象的数量.我有一个巨大的JSON字符串,我正在循环并将这个巨大的字符串切割成不同的对象.JSON字符串包含许多旅行者信息,每个Javascript对象都有很多属性.当JSON中有超过10,000名旅行者时,浏览器正在努力表现.

如果我可以减少属性数量显然我的有效负载将减少,我仍然需要很多属性,但是,对象的数量可能保持不变.

许多JS对象与较小的有效载荷相比,哪一个在性能上有更多的降价?

谢谢

deb*_*ter 0

考虑到我的专业领域只是跨越了这个问题的范围,而不是完全覆盖它,我会给出最好的答案。

现代计算机有一个内存层次结构:主内存;两级或三级缓存。每一级缓存都比上一级缓存更小,但更靠近 CPU(因此实际上更快)。

因此,就程序运行的速度而言,它使用的总体内存量往往不如当前的“工作集”(程序在某一时刻使用的内存部分)重要。 。

根据您的描述,听起来将大 JSON 字符串分解为许多较小的对象将有助于在大多数情况下减少工作集的大小。如果在执行此操作时留下了许多未使用的属性,那可能并不重要,因为它们可能在大多数时间都保留在工作集之外。

让后端过滤掉一些不需要的属性可能是一种有用的技术,因为这会减少传输的数据量。但是,您需要仔细考虑如何扩展;它可能会给服务器带来过多的负载。

可能有一些方法可以通过重新评估您编码的算法和您使用的库(方法)来加速您的程序。可能有一些特定于典型现代 JavaScript 引擎的技术;恐怕这超出了我的专业范围。

将一些新概念引入您的应用程序可能会有所帮助。通过采用启发式(系统猜测)或降低准确性来减少处理是否可以接受?

例如,可以根据仅使用部分数据的第一遍向用户呈现临时结果。旋转器(或消息)可用于提醒用户正在进行更多处理。处理完整数据集后,将其呈现给用户。

或者,让用户选择“快速”或“深入”结果;深层结果可能会在后端计算(并且可能会外包给 HTTP 或数据库服务器以外的机器)。

HTH 祝你好运!