我想要尽量节省内存使用的资源。我看到很多人都说set obj = nothing 可以释放内存资源,但是做了以下实验并为得到他可以释放资源:
Public Function conndb()
  Dim GConn1 As ADODB.Connection
  Set GConn1 = New ADODB.ConnectionOn 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.DescriptionEnd Function我的试验做的时候,刚运行程序时,占用8.3M内存,当调用完conndb函数后,内存变成了11.8M,做了两次实验一次加了这句话,另一次没有加这句话。结果内存占用量差不多的,并未释放内存资源请大家多多指教!

解决方案 »

  1.   

    http://bbs.blueidea.com/thread-2730510-1-1.html
      

  2.   

    Dim GConn1 As ADODB.Connection
    是局部变量,过程结束就释放了,加不家是一个效果
      

  3.   

    http://topic.csdn.net/t/20051222/16/4475526.html
      

  4.   

    释放内存有点像我们在数据库中删除记录,可能删了很多记录,数据库并不见小,原因是为了提高效率与速度,数据库只是加了个删除标记而已,真正重新排列数据去除已删记录占用的空间,还需对数据库做一次压缩。
    系统对内存管理也是这样,应用程序申请新内存会立即获取,但释放内存,为提高效率,系统会在需要时才利用空闲时间做一次“垃圾回收”,当然不同系统管理方式会有些不同。Set GConn1 = Nothing 是个好习惯,但不是必须的,VB的过程级变量,在过程结束时会自动释放,你加不加这句,结果一样。