.net DataGridView使用超过4Gb的内存,有10行

.net DataGridView使用超过4Gb的内存,有10行,.net,vb.net,memory,datagridview,.net,Vb.net,Memory,Datagridview,我对DatagridView有问题。 我正在使用VisualStudio 2019/VisualBasic应用程序目标是NET 4.8 framework开发Windows窗体应用程序。 问题是内存使用量太大DataGridView占用4Gb内存和10行数据 在为datagridview设置数据源时分配内存。 如果有10行或1000行数据,内存量变化不大。 网格使用Datatable作为数据源,Datatable由SQLServer填充 MySqlDataAdapter.Fill(MyDatas

我对DatagridView有问题。
我正在使用VisualStudio 2019/VisualBasic应用程序目标是NET 4.8 framework开发Windows窗体应用程序。
问题是内存使用量太大DataGridView占用4Gb内存和10行数据
在为datagridview设置数据源时分配内存。 如果有10行或1000行数据,内存量变化不大。 网格使用Datatable作为数据源,Datatable由SQLServer填充

MySqlDataAdapter.Fill(MyDataset) ' 
MyGrid.DataSource = MyDataset.Tables(0) ' This row causes 1.5s delay in time, and consumes over 4Gb memory
Visualstudio诊断工具显示了此内存分配,但我无法在堆视图中看到它

如果Datagridview预先分配了一些额外的内存,我如何调整或禁用它?
已尝试GC.Collect,但没有帮助,没有释放内存。我以前没有注意到这一点。
我的开发计算机改变了什么,我买了更多的内存,现在总共16Gb。

问题解决了。
问题出在我正在开发的计算机上,网络框架破裂或诸如此类。

安装在另一台计算机上的同一应用程序工作正常,最多占用35Mb内存。

DatatGridView控件根本不占用4Gb内存和10行数据。您是否看到这种内存使用率随着时间的推移而增长?什么时候每次填充数据集时?这种情况多久发生一次?您是否正在处理用于查询数据库的一次性对象?您正在使用图形对象吗?在控件上绘图?使用项目资源中的图形对象?其他你应该处理但你没有处理的东西?像我说的,4GB在1.5秒内被消耗掉。当我关闭对话框时,内存正常释放。那么,您应该发布此对话框中使用的代码,以及创建此对话框实例时创建的任何对象。-请注意,当您创建表单并使用
ShowDialog()
显示它时,您需要立即对其调用
[FormDialog].Dispose()
。-这一切都与DataGridView无关。我试着注释掉那一行,在这种情况下,内存使用正常。尝试将断点设置到该行,在执行该行之前,整个程序只消耗32Mb内存。按下Shift+F8(单步切换)后,消耗4.5GB。我在Visual studio诊断工具窗口和Windows TaskManager->performance页面中看到内存使用情况。关闭包含此datagrid的对话框后,所有内存将正常释放。看起来没有内存泄漏,只是使用量很大。这与表单本身无关。就像我说的。Datagridview.datasource=dataset。表(0)导致内存使用。当然,我会在使用后处理对话框。关闭对话框后,内存正常释放。明天我将尝试使用较旧的框架版本,让我们看看会发生什么。这个对话框是我的老代码,在其他应用程序中成功使用了大约10年。对于这个新版本,我做了一些修改,比如新的框架版本。WIndows Update assistant将我的计算机更新为最新的WIndows版本,问题消失。