set obj = nothing 不会释放内存?
我想要尽量节省内存使用的资源。我看到很多人都说set obj = nothing 可以释放内存资源,但是做了以下实验并为得到他可以释放资源:
Public Function conndb()
Dim GConn1 As ADODB.Connection
Set GConn1 = New ADODB.Connection
On Error GoTo Err1
GConn1.CursorLocation = adUseClient
GConn1.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=TEST;Data Source= " + "192.168.1.112 ", "sa ", "123456 "
GConn1.Close
Set GConn1 = Nothing '释放内存“没有用”
Exit Function
Err1:
MsgBox Err.Description
End Function
我的试验做的时候,刚运行程序时,占用8.3M内存,当调用完conndb函数后,内存变成了11.8M,做了两次实验一次加了这句话,另一次没有加这句话。结果内存占用量差不多的,并未释放内存资源
请大家多多指教!
[解决办法]
http://bbs.blueidea.com/thread-2730510-1-1.html
[解决办法]
可以释放内存,理论可以.所以不论是否真的释放,都应该写这一句.
[解决办法]
对象的存储是需要内存的
释放对象也就是释放内存了
[解决办法]
Dim GConn1 As ADODB.Connection
是局部变量,过程结束就释放了,加不家是一个效果
[解决办法]
理论上可以的
[解决办法]
给大家介绍个技术群
大家一起学习,一起提高
20767472
[解决办法]
http://topic.csdn.net/t/20051222/16/4475526.html
[解决办法]
释放内存有点像我们在数据库中删除记录,可能删了很多记录,数据库并不见小,原因是为了提高效率与速度,数据库只是加了个删除标记而已,真正重新排列数据去除已删记录占用的空间,还需对数据库做一次压缩。
系统对内存管理也是这样,应用程序申请新内存会立即获取,但释放内存,为提高效率,系统会在需要时才利用空闲时间做一次“垃圾回收”,当然不同系统管理方式会有些不同。
Set GConn1 = Nothing 是个好习惯,但不是必须的,VB的过程级变量,在过程结束时会自动释放,你加不加这句,结果一样。
[解决办法]
肯定是有的
可能是效果不太显著没能看出来吧