Open zkycaesar opened 3 months ago
如果是上亿数据,应该考虑在服务端做采用处理,不要返回这么多的数据
如果是上亿数据,应该考虑在服务端做采用处理,不要返回这么多的数据
确实应该后端采样。只是我们现在的应用还需要dataZoom,如果是后端采样的话,一个是前后端就需要频繁地交换数据,另一个是好像就没法利用现成的这个dataZoom组件了。
@Ovilia 针对这个场景,您有什么建议吗?还是说我们只能自己来实现dataZoom了?
对了,另外还有几个点看是不是有优化空间:
这几个点可以让我们的应用优化更多的内存占用。
最佳的解决方案是从产品设计的角度思考:
仅从纯技术角度优化的话:ECharts 官方对散点图的大数据支持量级是千万级别的,参见 https://echarts.apache.org/examples/en/editor.html?c=lines-ny 以及 https://github.com/apache/echarts/blob/master/test/linesGL-ny-appendData.html 。使用 progressive
渐进式渲染,后者使用二进制文件,体积更小,使用 WebGL 加速渲染。
折线图好像是必须要传x坐标数组?但其实很多简单情况下,x就是递增下标。如果能只传y数组就更好了。
y坐标现在好像是用Float64Array?但我们经常是用Float32,甚至Float16也能忍受。
ECharts 为了针对各种场景都表现良好,必须保证足够的通用性设计。如果你觉得这样的优化可以帮助你们在特定场景下提高性能,可以尝试 fork 出来修改源码,看看是不是能起到优化的效果。
What problem does this feature solve?
目前lttb采样好像没有可以配置参数的地方,如果我的点数很多,比如上亿,那就算是开了lttb,渲染也十分慢。所以是不是可以把参数开放出来,让用户可以调节采样的力度。
What does the proposed API look like?
比如像这几个库这样,开放lttb参数: simplify-js downsample-lttb