我有一个 Sitecore 应用程序,我需要从另一个系统循环创建大量 Sitecore 项目。以下是我的测试目的循环;
using (new Sitecore.SecurityModel.SecurityDisabler())
{
for (int i = 0; i < 20000; i++)
{
Item newItem = MyTemplateItem.CreateItemFrom(DateTime.Now.Ticks.ToString(), myParentItem);
newItem.Editing.BeginEdit();
newItem.Fields["Title"].Value = Guid.NewGuid().ToString();
newItem.Editing.EndEdit();
}
}
当此循环运行并在任务管理器中查看时,进程内存使用量随着时间的推移而增加。
SitecoreItem
类没有实现IDisposable
接口,所以我不能调用创建项的终结器。
如何避免这种内存泄漏?
PS:我正在使用 Windows 应用程序来执行此操作以绕过 IIS 进程内存泄漏,Sitecore 在此进行缓存更新和索引构建,这应该在此过程结束时完成。