delphi 内存泄漏检测

2021-01-04 21:29

阅读:600

标签:creat   多次   orm   repo   内存   name   str   epo   对话   

FormCreate 加一条
ReportMemoryLeaksOnShutdown:=true;

退出程序的时候,如果有内存泄漏,会弹出一个对话框.

*1就是有1个,3就是有3个,2就是有2个

13 - 20 bytes: TJSONNumber x 1, TJSONObject x 1, TJSONString x 3, TJSONPair x 2, UnicodeString x 2
21 - 28 bytes: UnicodeString x 1, Unknown x 1
29 - 36 bytes: UnicodeString x 1
37 - 44 bytes: TList x 1

 一、JO 要释放

jo := TJSONObject.ParseJSONValue(‘{"name": "John Smith", "age": 33}‘) as TJSONObject;

这个用完jo.free,否则就有内存泄漏 或者 freeandnil(jo);

如果jo多次使用,下面2种方法都可以,释放没问题。

//if jonil then  freeandnil(jo);
if jonil then  jo.Free;

二、Serialize 有泄漏

self.injson := system.JSON.Serializers.TJsonSerializer.Create.Serialize(inp);

三、TJSONArray  无泄漏

var jr:tjsonarray;

jr := jo.GetValue(‘data.dataList‘) ;

      for i := 0 to jr.Count - 1 do
  begin
    jrow := jr.Get(i) as TJSONObject;
  self.Caption:=  jrow.GetValue(‘ampm‘);

end;

delphi 内存泄漏检测

标签:creat   多次   orm   repo   内存   name   str   epo   对话   

原文地址:https://www.cnblogs.com/cb168/p/13189264.html


评论


亲,登录后才可以留言!