CesiumJS内存管理问题

时间:2015-04-28 08:24:14

标签: javascript json geojson cesium

我正在cesiumjs制作一个3d模型viwer。从网址请求geojson,它适用于小型号。由于复杂的json多字形文件和json url请求数据超过16mb cesium在解析和渲染时需要很长时间,如果我调用另一个模型,它会在内存错误的情况下崩溃Web浏览器。我在旁边检查了铬,它从网址上吃了大约900个内存,一个16mb的geojson。是否有更好的内存管理方式?或任何提示如何解决这个问题。一个解决方案可能是在为该模型发送geojson之前进行3d网格简化,但我要求与客户端的内存管理相关。

1 个答案:

答案 0 :(得分:0)

请记住,部分时间是浏览器在16兆字节的文件上运行JSON.parse。这是所有浏览器中的同步操作,在浏览器添加异步JSON解析之前,没有任何人可以做任何事情。我建议的第一件事是你在服务器上通过TopoJSON运行你的GeoJSON,这应该可以节省大量的资金。这将减少传输时间和JSON.parse时间。我还确定您的服务器正在压缩您的数据,这将进一步节省成本。我已经看到使用这些技术将16MB文件降到了兆字节以下。

话虽如此,这只是问题的第一部分。真正的问题不是GeoJSON有多大,而是它有多少功能?如果它是一个16MB的文件,具有~15000个功能,那么我的上述建议将解决您的问题。如果它有成千上万的功能,那么你将遇到一些不容易解决的问题。我昨天在邮件列表上提供了一些有关此内容的详细信息:https://groups.google.com/d/msg/cesium-dev/F6IkY9aEG1I/8dRkhlBnLI4J

我们一直在寻找优化和进一步改善铯的方法。如果可以,请随时联系我们的邮件列表并提供一些大型样本数据,然后我们可以在将来优化时将其用作一个很好的用例。