AFrame / Three.js :为什么在加载复杂的 .obj 文件时内存中有这么多 (JS)String?

AFrame / Three.js : why so many (JS)Strings in memory, when loading complex .obj files?

我们有一个非常复杂的网络场景,我们在其中动态加载非常复杂的 .obj 和 .mtl 文件。 将没有任何这些对象的场景与内部有多个对象的场景进行比较后,我们注意到一个奇怪的行为:

firefox 内存堆显示大部分内存(>100MB 用于 5 个对象)用于 JSStrings。其余内存用于 Objects,当我们在那里有复杂的目标文件时,这是不言自明的。
但是为什么会有大量的字符串,我们能够减少它吗? AFrame 是否将 .obj 文件的内容转换为字符串?

我们考虑过最小化 .obj 文件本身并减少顶点。也许你们中有人有过类似的经历和/或可以给我们建议如何解决这个问题。

提前谢谢你:-)

OBJ 文件是基于文本的,不幸的是,这不是传输 3D 数据的特别有效的方式。 A-Frame 必须解析该文本才能将您的数据上传到 GPU。

如果您需要避免这种情况,我建议您尝试将您的 OBJ 文件转换为二进制格式,如 glTF (.glb)。您可以使用 obj2gltf (CLI) or https://cesiumjs.org/convertmodel.html (web) 进行转换。 glTF 文件将加载得更快。