Delphi Spring4D IList内存溢出
Delphi Spring4D IList memory overflow
我正在使用来自 Stefan Glienke 的优秀 Delphi 框架 Spring4D 的 IList。
我有一个列表 IList,我在申请期间多次重新填写此列表 运行。所以,两三个小时后,我的列表内存溢出。
这是我填充列表的方式:
list := TCollections.CreateList<TVisitor>;
for i := 0 to dataSet.RecordCount - 1 do begin
item := TVisitor.Create ();
item.Surname := dataSet.FieldByName ( 'firstname' ).AsString;
item.Name := dataSet.FieldByName ( 'secondname' ).AsString;
item.Patronymic := dataSet.FieldByName ( 'thirdname' ).AsString;
item.CardNumber := dataSet.FieldByName ( 'cardnumber' ).AsString;
list.Add ( item );
dataSet.Next ();
end;
Clear() 方法不会释放内存,因此每次我填写列表时,Windows Task Manager inc 我的应用程序的内存使用情况:(
您的列表没有释放 TVisitor
个实例。
创建是这样的:
TCollections.CreateList<TVisitor>(True);
我正在使用来自 Stefan Glienke 的优秀 Delphi 框架 Spring4D 的 IList。
我有一个列表 IList,我在申请期间多次重新填写此列表 运行。所以,两三个小时后,我的列表内存溢出。
这是我填充列表的方式:
list := TCollections.CreateList<TVisitor>;
for i := 0 to dataSet.RecordCount - 1 do begin
item := TVisitor.Create ();
item.Surname := dataSet.FieldByName ( 'firstname' ).AsString;
item.Name := dataSet.FieldByName ( 'secondname' ).AsString;
item.Patronymic := dataSet.FieldByName ( 'thirdname' ).AsString;
item.CardNumber := dataSet.FieldByName ( 'cardnumber' ).AsString;
list.Add ( item );
dataSet.Next ();
end;
Clear() 方法不会释放内存,因此每次我填写列表时,Windows Task Manager inc 我的应用程序的内存使用情况:(
您的列表没有释放 TVisitor
个实例。
创建是这样的:
TCollections.CreateList<TVisitor>(True);