HOME -> ソフトウェア -> CMS , Blog -> MODx -> MODx 技術メモ -> 処理速度について

処理速度について

 MODxは動作時に内部で class modx を作成しますが、このメソッドは膨大な情報を内部にロードします。 そこで処理速度はどうなんだろうとハタと思いました。 MODxで数千ページを管理しているサイトをみていますが、どうもページ数が少ないときより遅くなっているように感じます。 そこで、どれだけパフォーマンスに影響が出ているのかをチェックしてみました。

 ベースは以下のとおりです。
MODx ver0.9.6.3
サンプルサイト導入のHOMEをキャッシュをきって動作させた場合。追加は一切行っていない状態
Document数 24
/index.php?id=1 =0.068810939788818
/index.php?id=1 =0.066642999649048
/index.php?id=1 =0.069005012512207
/index.php?id=1 =0.061012983322144
/index.php?id=1 =0.062204122543335
/index.php?id=1 =0.062656879425049
/index.php?id=1 =0.06030011177063
/index.php?id=1 =0.060741901397705
/index.php?id=1 =0.064342021942139
/index.php?id=1 =0.060816049575806
 計測は index.phpの頭でマイクロタイムを取得して、index.phpのケツで再度マイクロタイムを取得し、その差分を表示しています。 起動から処理終了まで0.6秒前後であることがわかります。
 さて、次は同じ状況でキャッシュを効かせてみます。
/index.php?id=1 =0.066170930862427
/index.php?id=1 =0.044744968414307
/index.php?id=1 =0.041399002075195
/index.php?id=1 =0.044297933578491
/index.php?id=1 =0.040209054946899
/index.php?id=1 =0.039772033691406
/index.php?id=1 =0.041130065917969
/index.php?id=1 =0.040030002593994
/index.php?id=1 =0.040056943893433
/index.php?id=1 =0.039858102798462
 同じく10回のアクセスを行いました。初回だけ0.6秒ほどかかっているのはキャッシュを作成しているためです。 その後は0.4秒前後をうろうろしています。 ページ内のスニペット量やプラグイン設定により上記数値は変動するでしょうが、比較的早く処理が行われているように感じられます。
 ではMODxで大量のドキュメントを保存してゆきます。 データは10程のファイルを格納したフォルダをいくつか複製してゆき、倍数的にドキュメントを増やしました。 増やした量は12,100ドキュメントになりますので初期状態のものと合せて12,124ファイルとなります。 ではこれでHOMEにキャッシュをきってアクセスします。
・・・
 恐らくタイムアウトになってしまうのではないでしょうか? これはスニペットのwayfinderがHOMEに組み込まれているためです。 テンプレートのMODxHOSTからwayfinderスニペットコール部分を削除してから再度アクセスしてみてください。
/index.php?id=1 =0.30831503868103
/index.php?id=1 =0.309406042099
/index.php?id=1 =0.30193305015564
/index.php?id=1 =0.3018639087677
/index.php?id=1 =0.30234408378601
 先ほどのキャッシュ有りよりも早い数値がでてきました。恐らくこれはwayfinderが多くのリソースを使っていたためだと思われます。 つまり、ページ数の多少はあまりMODxのパフォーマンスには影響を与えていないと考えられます。 但し、スニペットやプラグインなどには気をつける必要があります。 wayfinderのようなドキュメント走査系はドキュメント数やその処理方法によっては莫大なリソースを利用してしまいページ表示が極端に重くなってしまったという事も考えられます。


2009年 5月 25日ドキュメント作成
2009年 5月 25日ドキュメント更新