虽然没有研究过string的源代码,不过可以确定的是string的内存空间是在堆上开辟的,它自己负责释放空间,不用我们关系。 我们用一个动态分配的字符串指针初始化一个string对象retStr,它会做一个拷贝过程,将字符串考到retStr自己的内存空间里,之后retStr就跟ret没有任何关系.....
分类:
其他好文 时间:
2014-08-29 14:29:17
阅读次数:
182
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是oracle的告警log文件删除的时候文件应该正在被使用 解决方法 首先获得...
分类:
系统相关 时间:
2014-08-27 14:18:47
阅读次数:
307
在写代码的时候,可能会忽略释放内存、缓存之类的处理。
有时使用的类会自动调用释放方法,但在我们不知道是否是否的情况下,建议亲自是否。
方法一:Dispose方法。
主动去调用该方法,清除内存,释放空间。
方法二:继承IDisposable借口。
若没有Dispose方法,那么主动让类去继承IDisposable,可重写Dispose方法。
然后再主动调用方法释放内存。
方法三:usi...
分类:
其他好文 时间:
2014-08-11 11:58:22
阅读次数:
263
vector,map这些容器还是在堆上分配的内存,在析构时是释放空间vector在提高性能可以先reserve在push_back()reserve:决定capacity,但没有真正的分配内存,我感觉只是告诉操作系统预留一段空间,但没有真正的分配resize:真正的分配了,可以通过下标访问
分类:
其他好文 时间:
2014-08-01 23:00:12
阅读次数:
263
CComBSTR会自动管理字符串的内存空间,在析构时释放空间。由于C++对象在出其作用域时会进行析构。所以有一些情形下,使用CComBSTR容易犯下错误。来看以下代码: BSTR bstr1 = CComBSTR(L"hello"); BSTR bstr2 = CComBSTR(L"wo...
分类:
其他好文 时间:
2014-08-01 19:18:02
阅读次数:
302
关于容器的处理,只是拿来用,理解不深,但是今天跑程序出了问题。释放空间未得到真正的释放。于是网上找了一些文章,解决的问题。解决方法:使用swap 加上clear,一起释放空间。原理:即先创建一个临时拷贝与原先的vector一致,值得注意的是,此时的拷贝(申请空间时系统分配容量)其容量是尽可能小的符合...
分类:
其他好文 时间:
2014-07-22 22:40:34
阅读次数:
145
ORACLE 五中表的优缺点总结:
1,普通表(heap table):适合大部分设计场景,有优点也有缺点。
优点:
a,语法简单方便
b,适合大部分场景
缺点:
a,更新日志开销较大
b,Delete无法释放空间(HWM High Water Mark不下降)
c,表记录太大检索太慢
d,索引回表读开销很大
e,即便有序插入,也很难保证有序读出
2,全局临时表:适合接口表设...
分类:
数据库 时间:
2014-06-22 12:24:02
阅读次数:
441
一、类和结构的异同
类和结构有一些相似的地方,它们都可以:
1. 定义一些可以赋值的属性;
2. 定义具有功能性的方法
3. 定义下标,使用下标语法
4. 定义初始化方法来设置初始状态
5. 在原实现方法上的可扩展性
根据协议提供某一特定类别的基本功能
1. 类还有一些结构不具备的特性:
2. 类的继承性
3. 对类实例实时的类型转换
4. 析构一个类的实例使之释放空间
...
分类:
其他好文 时间:
2014-06-19 12:00:05
阅读次数:
342
delete table atruncate table
b用truncate删除表比delete删除表 逻辑读和cost都有明显的减少delete
删除并不能释放空间,虽然将很多块的记录删除,但空间依然会保留,oracle在查询时,依然会查询这些块而truncate是一种释放高水平位的动作,这些空...
分类:
其他好文 时间:
2014-06-06 07:32:46
阅读次数:
337