前一段时间接受一个任务,调查一个Service的内存泄露问题,该问题困扰系统一段时间了,因为系统比较大,一时难以确定泄露的原因和位置。通过Bouncecheck发现一些bstr_t的问题,但并不是主要问题,后来经过功能排检的方式,发现如下调用产生大量存泄露:
oDateTime.ParseDateTime(strActStartDate,0,sExportLanguage);
oDateTime.ParseDateTime(strActEndDate,0,sExportLanguage);
oDateTime.ParseDateTime(strEndedDate,0,sExportLanguage);
oDateTime.ParseDateTime(strLastDate,0,sExportLanguage);
上述代码是垃圾代码,什么事情也没有做,但在循环中每调用一次便产生16k的泄露。现在共享出来,答谢网上共享经验的朋友。
本文分享了一个内存泄露问题的调查过程及解决办法。通过对系统进行详细的功能排查,最终定位到一个循环调用导致每次循环增加16k内存泄露的代码片段。
687

被折叠的 条评论
为什么被折叠?



