Performance 填充图表时,程序会变慢

Performance 填充图表时,程序会变慢,performance,memory,charts,Performance,Memory,Charts,我用Visual Basic制作了一个小程序,当产品通过激光时,它会对产品进行计数。 每隔一秒钟,图表就会填充一个数据点,显示输出是高还是低,并在其上绘制一个图表,这样我们就可以看到在某个时间点没有流量 大约10小时后,程序会变慢,因为它每秒注册一次并将其放入图表中。图表在窗体计时器上运行 有没有办法加快速度或清除缓存并继续填充图表? 当产品完成后,我按下一个按钮,然后图表被保存为.jpg,我清除了图表,然后它又开始工作了。生产时间长达20小时。20小时内每秒1个数据点等于72000个数据点。即

我用Visual Basic制作了一个小程序,当产品通过激光时,它会对产品进行计数。
每隔一秒钟,图表就会填充一个数据点,显示输出是高还是低,并在其上绘制一个图表,这样我们就可以看到在某个时间点没有流量

大约10小时后,程序会变慢,因为它每秒注册一次并将其放入图表中。图表在窗体计时器上运行

有没有办法加快速度或清除缓存并继续填充图表?

当产品完成后,我按下一个按钮,然后图表被保存为.jpg,我清除了图表,然后它又开始工作了。生产时间长达20小时。

20小时内每秒1个数据点等于72000个数据点。即使在VB中,每秒显示和更新70K数据点一次,将出现性能问题

你可能想重新思考一下你是如何绘制的。您真的需要向操作员实时显示所有70K数据点吗?如果你只展示了最后的2K点呢?您不必扔掉早期的数据,只需将其保存在csv文件、access数据库或任何其他文件(理想情况下是MSSQL Express或MySQL DB)中,而不必保存在graph对象中

如果您确实需要在整个跑步过程中显示图表,请考虑平均。如果将50个点的集合汇总为一个平均数据点会怎么样?同样,您不必丢弃实际数据,只需将其保存在其他位置即可


在跑步结束时,您可以单击“报告”按钮,从所有70000个存储点生成一个图形,以导出/存储为jpg。但这是一次性的,即使需要一段时间-这不是一个很关键的问题。

我们可能需要了解一些关于添加/清除缓存的代码。非常感谢您的回复!你让我想到不同的解决方案。对于操作员来说,这是查看过去几个小时内发生的情况的最佳方式,但也许最后10000个数据点也是一个解决方案。如何在不丢弃数据的情况下显示最后10000个数据点?产品完成后,数据打印在文档上,我需要所有数据。非常感谢您与我一起思考=)将您的数据存储在MS Access数据库中。您可以查询要在图形上显示的最后X个数据点。好的,我将尝试此操作,但如何在每秒10000之前存储每个数据点?