1

通常在开发 Movable Type 模板时,我会想出多种方法来生成相同的结果,并且很好奇哪种方法更有效。或者,我只是想知道某件事花了多长时间,例如生成搜索结果。

有没有一种无需外部工具即可使用模板标签记录处理时间或其他计时策略的简单方法?

4

2 回答 2

3

或者您可以使用调试模式 8,如下所述:http ://www.movabletype.org/documentation/developer/plugins/debug-mode.html

还有一个选项(在与调试模式相同的常规设置面板中)激活具有阈值的性能日志。

于 2013-04-14T07:24:43.623 回答
1

这是我提出并使用了一段时间的方法。它使用标准的 Movable Type 模板语言将时间报告到最接近的秒数。

要为大量模板代码计时,请创建一个名为“计时”的系统或博客级别的模板模块:

<mt:If name="part" eq="start">
  <$mt:Date format="%H" setvar="hours"$>
  <$mt:Date format="%M" setvar="minutes"$>
  <$mt:Date format="%S" setvar="seconds"$>
  <$mt:Var name="hours" op="*" value="3600" setvar="hourseconds"$>
  <$mt:Var name="minutes" op="*" value="60" setvar="minuteseconds"$>
  <$mt:Var name="totalseconds" value="$hourseconds"$>
  <$mt:Var name="totalseconds" op="+" value="$minuteseconds" setvar="totalseconds"$>
  <$mt:Var name="totalseconds" op="+" value="$seconds" setvar="totalseconds"$>
  <$mt:Var name="totalseconds" setvar="startseconds"$>
<mt:Else name="part" eq="stop">
  <$mt:Date format="%H" setvar="hours"$>
  <$mt:Date format="%M" setvar="minutes"$>
  <$mt:Date format="%S" setvar="seconds"$>
  <$mt:Var name="hours" op="*" value="3600" setvar="hourseconds"$>
  <$mt:Var name="minutes" op="*" value="60" setvar="minuteseconds"$>
  <$mt:Var name="totalseconds" value="$hourseconds"$>
  <$mt:Var name="totalseconds" op="+" value="$minuteseconds" setvar="totalseconds"$>
  <$mt:Var name="totalseconds" op="+" value="$seconds" setvar="totalseconds"$>
  <$mt:Var name="totalseconds" setvar="finishseconds"$>
  <$mt:Var name="finishseconds" op="-" value="$startseconds" setvar="elapsedseconds">
  <!-- This search completed in <mt:If name="elapsedseconds" eq="0">less than 1 second<mt:Else name="elapsedseconds" eq="1">1 second<mt:Else><$mt:Var name="elapsedseconds"$> seconds</mt:If>. -->
</mt:If>

然后,在您想要计时的模板中,将这两行放在感兴趣的块的开头和结尾:

<$mt:Include module="timing" part="start"$>
  <mt:Ignore>Code I want to time</mt:Ignore>
<$mt:Include module="timing" part="stop"$>

如果您想在输出中表示计时开始的位置,您当然可以在“开始”部分添加一行输出。

于 2013-04-13T00:15:42.497 回答