内置的Sitecore渲染统计信息http://<sitename>/sitecore/admin/stats.aspx
对于识别低效且缓慢加载的XSLT渲染非常有用。最近我开始切换到.ascx子布局以利用Sitecore C#API,这有助于在正确使用时提高性能。
但是,我注意到在stats页面上没有正确报告子布局(与XSLT渲染相反)。请参见下面的屏幕截图....
我知道这个子布局需要 1.8秒来生成(我在代码隐藏中计算了这个)。缓存已关闭。我已经20次刷新页面,以确保我获得平均值。您会看到“平均项目”始终为0 - 我可以忍受 - 但“平均时间(毫秒)”小于1毫秒这显然是错误的。
有没有人对此有任何见解?有没有人找到让它正常工作的方法?
答案 0 :(得分:3)
判断统计数据是对还是错将依赖于准确理解它的衡量标准。
使用Reflector在Sitecore.Diagnostics.Statistics中挖掘我注意以下内容:
这意味着它正在测量渲染控件所需的时间,对于XSLT来说,它包括准备其中所有数据的处理时间,但正常ASCX的大部分工作是在渲染阶段之前完成,统计数据不太有用。在时间中加入Load阶段会无意中包含所有子组件的处理时间,因为Load序列是链接的并且是递归调用的,所以这可能也没有多大帮助。
我怀疑没有好的方法来测量特定ASCX控件(不包括孩子)的处理时间,而不首先获取累积数据,然后对处理链进行后处理并将时间分开。这就是RedGate ANTS真正做得很好的事情,但如果它是在实时生产系统上执行的话可能不会那么好,考虑到开销。