我有一个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();
}
}
当此循环正在运行并且在任务管理器中查看时,进程内存使用量随着时间的推移而增加。
Sitecore
Item
类没有实现IDisposable
接口,因此我无法调用所创建项目的终结器。如何避免此内存泄漏?
PS:我正在使用Windows应用程序执行此操作,以绕过IIS进程内存泄漏,其中Sitecore执行其缓存更新和索引构建,这些应在此过程的结尾完成。