gpt4 book ai didi

performance - Sitecore 的子布局渲染统计数据不正确吗?

转载 作者:行者123 更新时间:2023-12-01 02:25:56 25 4
gpt4 key购买 nike

内置的 Sitecore 渲染统计信息 http://<sitename>/sitecore/admin/stats.aspx对于识别低效和加载缓慢的 XSLT 渲染非常有帮助。最近,我开始切换到 .ascx 子布局以利用 Sitecore C# API,它可以在正确使用时帮助提高性能。

但是,我注意到在统计页面上没有正确报告子布局(与 XSLT 渲染相反)。请看下面的截图......

Example sublayout stats

我知道这个子布局大约需要 1.8 秒 生成(我在代码隐藏中计算了这一点)。缓存已关闭。我已刷新页面 20 次以确保获得平均值。您会看到“平均项目”始终为 0 - 我可以接受这个 - 但“平均时间(毫秒)”是 小于 1ms 这显然是错误的。

有没有人对此有任何见解?有没有人找到让它正常工作的方法?

最佳答案

判断一个统计数据是对还是错,将取决于对它所测量的准确理解。

使用 Reflector 在 Sitecore.Diagnostics.Statistics 中挖掘我注意到以下几点:

  • Sitecore.Web.UI.Webcontrol 包含一个字段 m_timer
  • 这是在 BeforeRender() 方法中“开始”并在 AfterRender() 方法中“停止”
  • 来自该计时器的数据被发送到 Statistics.AddRenderingData() 并记录到控件

  • 这意味着它正在测量呈现控件所花费的时间,对于 XSLT,这包括准备其中所有数据的处理时间,但与正常 ASCX 的大部分工作在呈现阶段之前完成一样,统计数据是不太有用。在时间中加入 Load 阶段会无意中包括所有子组件的处理时间,因为 Load 序列是链接和递归调用的,因此这可能也无济于事。

    我怀疑没有先获取累积数据然后对调用链进行后处理并将时间分开的情况下测量特定 ASCX 控件(不包括子控件)的处理时间的好方法。这就是 RedGate ANTS 做得很好的事情,但如果它在实时生产系统上执行,考虑到开销,它可能不会那么好。

    关于performance - Sitecore 的子布局渲染统计数据不正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16459460/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com