标签: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<System.JSON.TJSONPair> x 1
一、JO 要释放
jo := TJSONObject.ParseJSONValue(‘{"name": "John Smith", "age": 33}‘) as TJSONObject;
这个用完jo.free,否则就有内存泄漏 或者 freeandnil(jo);
如果jo多次使用,下面2种方法都可以,释放没问题。
//if jo<>nil then freeandnil(jo);
if jo<>nil then jo.Free;
二、Serialize 有泄漏
self.injson := system.JSON.Serializers.TJsonSerializer.Create.Serialize<T100110>(inp);
三、TJSONArray 无泄漏
var jr:tjsonarray;
jr := jo.GetValue<TJSONArray>(‘data.dataList‘) ;
for i := 0 to jr.Count - 1 do
begin
jrow := jr.Get(i) as TJSONObject;
self.Caption:= jrow.GetValue<string>(‘ampm‘);
end;
标签:creat 多次 orm repo 内存 name str epo 对话
原文地址:https://www.cnblogs.com/cb168/p/13189264.html