------通过topas查看,如果住下掉写文件的函数topas 的PgSp值一直不会变化,如果加上写文件发现这个值一直缓慢增加,并且用c的函数比ofstream增长慢。
-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
270582 split_cdr.bin 38360 8441 28 29451 Y Y N
PageSize Inuse Pin Pgsp Virtual
s 4 KB 26040 8393 28 17131
m 64 KB 770 3 0 770
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
0 0 work kernel segment s 13236 8390 0 13246
870b0 90000000 work shared library text m 765 0 0 765
64dee - clnt /dev/lv_jk_data01:12456 s 8373 0 - -
8001 9ffffffd work shared library s 1672 0 2 1674
88193 90020014 work shared library s 1106 0 26 1119
c80be 11 work text data BSS heap s 851 0 0 851
f4135 10 clnt text data BSS heap, s 547 0 - -
/dev/lv_jk_data01:12463
dc6dd 9001000a work shared library data s 138 0 0 138
1fd91 f00000002 work process private m 5 3 0 5
efcef 80020014 work USLA heap s 51 0 0 51
30026 9ffffffe work shared library s 33 0 0 33
182 9fffffff clnt USLA text,/dev/hd2:2190 s 14 0 - -
50619 - work s 11 3 0 11
cc7df 8fffffff work private load data s 5 0 0 5
67d7e ffffffff work application stack s 3 0 0 3
64c6a fffffffd work application stack s 0 0 0 0
32b00 fffffffc work application stack s 0 0 0 0
4c82f fffffffe work application stack s 0 0 0 0
其中 c80be 11 work text data BSS heap 一直在增长,确实内存泄露了
明天改造程序不要频繁写文件。
写这个日志。留个记号。
频繁的写文件在一个目录下的几个子目录下,目前看是造成了内存泄露。当到一定条件时,程序崩溃了。现在修改了程序,一个源文件分析之后再集中写文件。避免了频繁的打开,写,关闭操作。目前未出现内存泄露。