首页 > 解决方案 > c# wpf 内存泄漏

问题描述

我最近制作了一个桌面应用程序,可以与我工作的设备进行通信。

该应用程序的总体思路是给设备(烤箱)一个“设置温度”命令,每 10 秒检查一次当前温度并使用实时图表将其显示在图表上。

这个应用程序需要一次运行多天,我认为我似乎遇到了内存泄漏问题。我的经验是应用程序有一段时间没有响应,然后它变得响应并添加 1 个单一的“日志”效果,就像在 LogTemp 函数中一样,每 1-2 分钟左右。应该每 10 秒一次。

编辑:刚刚阅读此编辑之前的行,我想我不太清楚。它可以正常工作,因为它应该在最初的几个小时内工作。注意到性能仅在 24 小时后才受到打击。

运行 24 小时后,我回来发现它使用了超过 800 MB 的 RAM,而且它还在以秒的速度增长。

我怀疑它可能与实时图表有关,但我不确定。(24 小时后得到 8640 个数据点)

我公开我的代码没有问题,甚至将需要显示的代码量减少到总共大约 200 行,这些代码被分成几个不同的功能,但是如果有人听说过实时图表和/或可以建议一个这样的问题不同类型的图形库我很乐意将其换掉。

Actually, here's the code, lmao:

https://pastebin.com/YBn5CuD6

我想到的另一件事,可能是我向 ListView 添加了太多行吗?我们正在谈论.. 24 小时内 8640 行。可能与它有关吗?

抱歉发了这么长的帖子,提前谢谢你。

标签: c#wpflivecharts

解决方案


对于任何感兴趣的人,我降低了负责 LiveCharts 图表上有多少点的采样率,即使运行了 3 天,它现在也非常顺利。(RAM 使用量也在 90 MB 左右,这是我的应用程序所预期的)

我相信这就是问题所在,因此我会将其标记为下一个人搜索 LiveCharts 内存泄漏的答案。

谢谢大家的帮助。


推荐阅读