0

Movable Type 5.2 で実行しているサイトがあり、別のカテゴリに属する​​エントリに基づいて現在のカテゴリのエントリをフィルタリングするテンプレートの一部を単純化しようとしています。

このテンプレート スニペット (インデックス テンプレートとして構築され、コミック カテゴリにもある各カテゴリの最初のエントリのタイトルを出力するだけです) は非常に短時間 (1 ~ 2 秒) で構築されますが、少し面倒です:

<mt:Categories>
 <mt:SetVar name="show" value="1">
 <mt:Entries sort_order="ascend" limit="3">
  <mt:IfCategory label="Comic">
  <mt:If var="show" eq="1">
    Hello, <$mt:EntryTitle$>
    <mt:SetVar name="show" value="0">
  </mt:If>
  </mt:IfCategory>
 </mt:Entries>
</mt:Categories>

変数補間を使用して単純化することにしましたが、最終的にビルドに 142 秒かかります。

<mt:Categories>
 <$mt:CategoryLabel setvar="topCat"$>
 <mt:Entries sort_order="ascend" limit="1" category="$topCat AND Comic">
  Hello, <$mt:EntryTitle$>
 </mt:Entries>
</mt:Categories>

タグ<mt:SetVarBlock name="allCats"><$mt:EntryCategory$> AND Comic</mt:SetVarBlock>を使用category="$allCats"して使用すると、ビルドにもこれほど時間がかかります。<mt:Entries>

ここで何が起こっているのか、そして物事をより速くする方法を知っている人はいますか? また、理論的にはこれらのコードの簡素化の恩恵を受ける他のテンプレートもいくつかあります (特に、追加のカテゴリのみにあるエントリにさらに制限したいカテゴリ テンプレート) が、それらを適切に構築するのに時間がかかりすぎてしまいます.

MT をプロファイリングして、コードのどこに問題があるかを調べる良い方法はありますか? 私は Perl を恐れていませんが、Perl で使用できるプロファイリング ツールについても知りません。

4

1 に答える 1