首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

set obj = nothing 不会释放内存?解决思路

2012-01-23 
set obj nothing 不会释放内存?我想要尽量节省内存使用的资源。我看到很多人都说setobjnothing可以释放

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的过程级变量,在过程结束时会自动释放,你加不加这句,结果一样。
[解决办法]
肯定是有的
可能是效果不太显著没能看出来吧

热点排行