我想要尽量节省内存使用的资源。我看到很多人都说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,做了两次实验一次加了这句话,另一次没有加这句话。结果内存占用量差不多的,并未释放内存资源请大家多多指教!
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,做了两次实验一次加了这句话,另一次没有加这句话。结果内存占用量差不多的,并未释放内存资源请大家多多指教!
是局部变量,过程结束就释放了,加不家是一个效果
系统对内存管理也是这样,应用程序申请新内存会立即获取,但释放内存,为提高效率,系统会在需要时才利用空闲时间做一次“垃圾回收”,当然不同系统管理方式会有些不同。Set GConn1 = Nothing 是个好习惯,但不是必须的,VB的过程级变量,在过程结束时会自动释放,你加不加这句,结果一样。