gpt4 book ai didi

WPF 内存使用情况

转载 作者:行者123 更新时间:2023-12-04 03:35:27 24 4
gpt4 key购买 nike

应用:

  • WPF 应用程序由顶部的文本框和下方的列表框组成
  • 用户在TextBox中输入字符串查找员工,搜索结果显示在ListBox
  • ListBox 使用 DataTemplates 来显示元素(显示员工姓名、部门、​​电话和缩略图。)

  • 执行:
  • 在应用程序启动时,我查询数据库并检索要显示在 ListBox 中的所有员工和相关信息。这一直保存在内存中。
  • 应用程序启动后,所有可搜索的数据都在内存中,搜索几乎是即时的。所有搜索都在内存中的数据上执行。
  • 搜索结果使用 DataTemplates 显示在 ListBox 中。缩略图、姓名、电话、部门等显示在每个 ListBox 项中。

  • 问题:
  • 启动时内存使用量约为 200MB。
  • 随着列表框中的数据发生更改,无论是通过新搜索还是简单地向下滚动列表框,内存消耗都会增加。
  • 当用户缓慢向下滚动列表框时,内存增加得更快。当您上下滚动时,内存迅速达到 1GB。

  • 没有手动创建控件的代码 - 一切都是通过数据绑定(bind)完成的。

    为什么我会看到这种行为?我能做些什么来修复它?请帮忙!

    更新:
    我发现问题不是内存泄漏。这里的问题是列表框正在创建对象以显示员工的图像,并且在列表框项离开窗口后没有为垃圾收集器释放。 CleanUpVirtualizedItem 事件如我所料发生,但内存仍未释放。有任何想法吗?

    最佳答案

    冒着油嘴滑舌的风险,你有内存泄漏。为什么不试试 ANTS 之类的工具呢? * 追踪它。他们有免费试用版,我从未使用过它,但它有很好的声誉。

    *其他分析工具可用。

    如果您不想使用其他工具,您可以尝试在每次创建类时增加静态成员并在每次处置实例时减少它。这将帮助您追踪未正确销毁的实例。

    关于WPF 内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841602/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com