最近做一个项目,在线程中用到了一个大约5k大小的string型变量,发现内存不断增长,这种现象应该会很常见,我们通常都采用str=""的方法给str置空,而实际上这种方法只是将结束符"/0"放到最前面,并未将内存清空并释放,下次使用str时会在"/0"前插入赋的值,这样str占的空间就不断增长,要想真正的释放str占用的空间,需要加入以下代码:
str.delete(0,str.Length());
str.SetLength(0);
搞定!
最近做一个项目,在线程中用到了一个大约5k大小的string型变量,发现内存不断增长,这种现象应该会很常见,我们通常都采用str=""的方法给str置空,而实际上这种方法只是将结束符"/0"放到最前面,并未将内存清空并释放,下次使用str时会在"/0"前插入赋的值,这样str占的空间就不断增长,要想真正的释放str占用的空间,需要加入以下代码:
str.delete(0,str.Length());
str.SetLength(0);
搞定!