更有效地显示非常大的数据集



我有一个逻辑分析仪项目,记录了数亿个16位值(~1亿-5亿),当用户缩放时,我需要显示从几百个样本到整个捕获的任何内容。

当您缩小时,整个系统会从文件中加载大量块,从而对性能造成巨大影响。

我只是今天早上认为以用户屏幕分辨率"跨步"浏览文件会更有效。无论如何,您都无法在像素之间物理显示任何内容。不过,这并不能解决内存中大量文件大小的问题。

我可以获取一个巨大的数据集并有效地将其流式分块吗?

我在考虑从头到尾流式传输 + 通过 horiz 分辨率查看大小。不过,这会使缩放非常不稳定。

程序使用 python,但如果它已经存在,我愿意在 c 中调用某些东西。

好吧,我不知道这实际上是关于编程还是整体设计的问题。

对于可视化的"缩放"问题,我建议:

  1. 具有某些缩放级别的预计算/缓存版本。理想情况下,应根据用户行为计算渐变。
  2. 当用户放大时,您同时
      计算
    • "正确"数据或加载更深缩放图层的预先计算的聚合数据,并按视图框对其进行裁剪
    • 通过渲染前一层的低分辨率数据或通过某种近似值对其进行平滑来作弊(但请确保以某种方式告诉用户数据尚未最终确定)

除此之外,想想你是否可以优化存储数据的方式。树可以使您的生活更轻松,无论是部分磁盘读取/搜索还是存储聚合数据。

在我看来,除非它们形成某种图像/形状,否则显示几百个样本是没有意义的。我想如果结构正确(彩色),人们可以查看数百个数字。几百个 - 怀疑它 - 在这里你用一些可视化(绘图、图表、地图......

要解决此问题,您可以定义一些规则来完全停止显示实际数据。例如,如果数字高度小于 10 像素,则会显示某种消息selected numbers are from rows 200...300, columns 400..500或带有角坐标和数字量的图形交替。

最新更新