[SiteSearch Google]

December 21, 2007

MT4 標準機能で「更新日時が最新」の記事(「limit」を使う)

[ad]

limit モディファイア

結論: MT4.x で「記事を○○順に□件 並べる」場合は limit モディファイアを使おう!

──はい。ということで今回は、このブログではお馴染みの、

「またオレが ろくでもない情報を垂れ流しちゃいました☆ てへっ :-P」

という、お詫び記事です。スンマセンですたー(「別に……」という態度で)。

以前、下記のような記事を(得意満面で)書きました。

MT4 で「更新日時が最新」の記事をプラグイン無しで表示 : 亜細亜ノ蛾 - Weblog

──が、Movable Type 4.xでは、limit モディファイアを使えば、上記のような小細工は不要です(バージョンいくつから使えるかは知らない)。

ref.: lastn モディファイアと limit モディファイアの違い | MovableType.jp

後述しますが、再構築にかかる時間も、limit を使ったほうが速いです。

lastn と limit のパフォーマンス

自分が見付けた方法、通称「lastn 法」と公式の「limit 法」で、どれくらいパフォーマンスに差が出るか、実験してみました。

新規にブログを作成し、下記(記事の末尾)のテンプレートを使って、「記事が 10 件の場合」と「100 件の場合」で測定しました。ちなみに、最初は記事を 10 件インポートし、100 件の場合はインポートを 9 回実行しています(同じ記事が 10 件ずつある状態)。

3 回測定して平均値を割り出し、小数点 2 桁以下を四捨五入した結果は、下記の通り:

  • 記事が 10 件の場合
    • lastn: 34.89 ms
    • limit: 5.35 ms
  • 記事が 100 件の場合
    • lastn: 331.93 ms
    • limit: 8.04 ms

\(^o^)/オワタ ──というくらい、差が出ましたね!

よく見ると──というまでもなく、lastn のほうは記事数に比例して時間がかかっていますが、limit は誤差の範囲内です。たぶん、記事が 1000 件くらいになっても、それほど差が出ないのでは。

lastn と limit を同時に使えるか?

ついでなので、もう一つ調べてみました。

こんなコードを書くと:

<MTEntries lastn="15" limit="1" sort_by="modified_on">...</MTEntries>

──「登録日時が新しい記事 15 件の中から、更新日時が 1 番新しい記事」を抜き出すことができそうですが、無理でした。limit が勝ってしまい、lastn は無視されるようです。

もしもこの書き方が使えるなら、feed(RSS, ATOM)テンプレートで「最新の更新日」に使えるんですけどね。feed テンプレートは、デフォルトで「登録日時が新しい記事から 15 件」を抜き出しているので、その 15 件の中で更新した日時がわかると便利なのですが(ややこしいね!)。

そんなときには、やっぱり(オレの)「lastn 法」、ですかね……。 ( ´_ゝ`)

測定に使ったテンプレート

<html>
  <head>
    <title>latn/limit test</title>
  </head>

  <body>

    <!-- lastn 法を測定 -->
    <MTStopWatch start="1">

    <MTEntries lastn="100" sort_by="modified_on">
      <MTUnless name="XXX_last_mod1">
        <p><MTArchiveDate format="%B"></p>
        <MTSetVar name="XXX_last_mod1" value="1">
      </MTUnless>
    </MTEntries>

    <p>lastn: <MTStopWatch stop="1" magnify="1000" sprintf="%.3f"></p>


    <!-- limit 法を測定 -->
    <MTStopWatch start="2">

    <MTEntries limit="1" sort_by="modified_on">

      <p><MTArchiveDate format="%B"></p>

    </MTEntries>
    <p>limit: <MTStopWatch stop="2" magnify="1000" sprintf="%.3f"></p>

  </body>
</html>

Google Adsense

ワード

コメント

コメントを投稿

"MT4 標準機能で「更新日時が最新」の記事(「limit」を使う)" にコメントを投稿することができます(別ウィンドウが開きます)。

トラックバック

このエントリーのトラックバックURL:

"MT4 標準機能で「更新日時が最新」の記事(「limit」を使う)"へのトラックバックはまだありません。

過去の記事

カテゴリィ一覧
  1. Movable Type
  2. その他
    1. アイデア
  3. ウェブ
    1. Weblog
    2. Webデザイン
    3. ちょっとイイ話
    4. へぇー(トリビア・雑学)
    5. オモロ
      1. オモロテキスト
      2. オモロニュース
      3. オモロ動画
      4. オモロ画像
    6. ニュース
  4. コンピュータ・エレクトロニクス
    1. PC
      1. Firefox
  5. マンガ・アニメ・ゲーム
    1. アニメ
      1. 新世紀エヴァンゲリオン
    2. オタク
    3. ゲーム
    4. マンガ
      1. 週刊少年ジャンプ
        1. DEATH NOTE
        2. HUNTER×HUNTER
        3. SKET DANCE
  6. 本・音楽・映画・TV
    1. TV・芸能
    2. 映画
  7. 食・健康・生活
    1. ファッション
    2. 食べ物