玻璃模型和Sitecore项目缓存问题

玻璃模型和Sitecore项目缓存问题,sitecore,sitecore7,glass-mapper,sitecore-mvc,sitecore7.1,Sitecore,Sitecore7,Glass Mapper,Sitecore Mvc,Sitecore7.1,我们在Sitecore 7.1(MVC渲染)中使用Glass Mapper模型,我们最近将此项目部署到live环境中,但我们的客户注意到性能随着时间的推移而下降,例如,在8~12小时后,一些页面开始需要20秒才能加载。 联系sitecore支持并发送CPU/内存转储后,支持团队响应: “由于Glass Mapper经常解析项目路径,Sitecore需要更新项目路径缓存中的记录(每次更新都会“锁定”缓存)。由于这种情况似乎经常发生,应用程序将遇到一些线程等待单个线程完成更新项目路径缓存的情况””

我们在Sitecore 7.1(MVC渲染)中使用Glass Mapper模型,我们最近将此项目部署到live环境中,但我们的客户注意到性能随着时间的推移而下降,例如,在8~12小时后,一些页面开始需要20秒才能加载。 联系sitecore支持并发送CPU/内存转储后,支持团队响应:

由于Glass Mapper经常解析项目路径,Sitecore需要更新项目路径缓存中的记录(每次更新都会“锁定”缓存)。由于这种情况似乎经常发生,应用程序将遇到一些线程等待单个线程完成更新项目路径缓存的情况”

那么,您以前有没有遇到过这样的问题?我需要对我们的玻璃模型做些什么来防止这种情况

“Glass.Mapper”version=“3.0.11.23”

“Glass.Mapper.Sc”version=“3.1.10.31”


谢谢

问题出在我们的基类中,它包含“完整路径”属性:

公共虚拟字符串完整路径{get;set;}
这意味着,每次通过glass加载项时,它都会命中路径缓存,这导致了缓慢

我已将属性更新为更像“惰性加载”属性:

[Glass.Mapper.Sc.Configuration.Attributes.SitecoreIgnore()]
公共字符串完整路径{
得到
{
return FullPath();\此方法从item.path.FullPath检索FullPath
}
}

这解决了问题。

嗨,艾哈迈德,这是我第一次听说这个。他们提供了进一步的信息吗。如果这是一个真正的问题,我会有兴趣解决这个问题。如果你不能在这里发布更多信息,你可以通过glass的mike与我联系。luI已经看到过这样一种情况:Url属性上有一个带有SitecoreInfoType.Url的基类,这导致了大量ItemPath的使用。这可能就是Sitecore看到这种行为的原因。我们已停止使用Url信息类型。@RvanDalen您使用了什么替代方法?对此我们有任何答案吗?