VB的内存释放(鄙视那些说内存泄露的人,适用VB6,.NET)

VB的内存释放(鄙视那些说内存泄露的人,适用VB6,.NET),第1张

概述很多人都发现过,VB使用webbrowser等网络控件或其他一些大型控件时,占用的内存资源会不停的上涨,直到机器支持不了,运行崩溃。很多自以为是的高手要么说VB内存管理的问题,要么IE内核存在泄露。其实不然,只是了解的不够而已。 在VB中,一个对象(包括控件)使用以后,可以用set s=nothing来销毁(销毁后不立即释放内存的,要等待windows的内存机制来释放)。 但我们可以用EmptyW

很多人都发现过,VB使用webbrowser等网络控件或其他一些大型控件时,占用的内存资源会不停的上涨,直到机器支持不了,运行崩溃。很多自以为是的高手要么说VB内存管理的问题,要么IE内核存在泄露。其实不然,只是了解的不够而已。

在VB中,一个对象(包括控件)使用以后,可以用set s=nothing来销毁(销毁后不立即释放内存的,要等待windows的内存机制来释放)。

但我们可以用EmptyWorkingSet来释放内存(当然,也可以用SetProcessWorkingSetSize配合使用,但是SetProcessWorkingSetSize不能连续使用,伤不起啊)。

由于窗体原生控件不能销毁,可以把会累积内存资源的控件用代码动态创建,然后就可以销毁后释放内存了。这一点很重要,很多人习惯于使用webbrowser控件,不停的改变webbrowser的网页内容,内存会不停上涨的,使用原生控件,真的没什么好办法了,建议你用代码创建一个动态控件试试,是不是能销毁了?

创建方式:

Set Wb1 = Me.Controls.Add("shell.explorer.2","wb1")
销毁方式1:
Me.Controls.Remove Wb1

销毁方式2:

set wb1=nothing

然后用EmptyWorkingSet释放内存即可。瞬间释放哦!看下图:

1、释放前

2、释放后

感觉如何?瞬间释放,无停顿的

总结

以上是内存溢出为你收集整理的VB的内存释放(鄙视那些说内存泄露的人,适用VB6,.NET)全部内容,希望文章能够帮你解决VB的内存释放(鄙视那些说内存泄露的人,适用VB6,.NET)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1281528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存