2024年11月21日(木) 18:35 JST

Geeklogの性能測定(その2)

  • 2008年10月 5日(日) 16:02 JST
  • 投稿者:
  • 表示回数 4,752
Geeklog

前回と同じ環境(config.class.phpのキャッシュなし)で、public_html/index.phpにアクセスしたときに、lib-common.phpインクルードにかかる時間の内訳(5回の平均値)。時間の単位はms(ミリ秒)。0.2ms以下のものは適当に省いている。

項目実行時間比率
lib-common.php自体の読み込み19.449.0%
config->initConfig()9.423.7%
config->load_baseconfig()3.17.9%
lib-syndication.phpインクルード1.53.8%
staticpages::functions.incインクルード1.33.3%
links:functions.incインクルード0.82.1%
lib-plugins.phpインクルード0.71.7%
japanaese_utf-8.phpインクルード0.61.4%
polls::functions.incインクルード0.51.2%
smapx::functions.incインクルード0.41.1%
calendar::functions.incインクルード0.30.9%
SEC_getUserGroups()0.20.6%
合計39.6 

意外な感じがするのは、プラグインのfunctions.incをインクルードする時間が長いこと。同梱されている標準の5つのプラグインだけでも3.3ms(全体の8.7%)かかっている。

ついでに、public_html/index.php自体も計測してみた。

項目平均実行時間(ms)平均比率(%)
index.php自体の読み込み9.49.3%
lib-common.phpインクルード35.635.0%
COM_siteFooter()24.023.6%
COM_siteHeader()19.619.3%
STORY_renderArticle()7.17.0%
lib-story.phpインクルード2.62.5%
全体101.6 

記事1件ごとにSTORY_renderArticle()が呼び出されるので、記事が増えるほど遅くなる。これは当然のことだが、COM_siteHeader(), COM_siteFooter()に莫大な時間がかかっているのは予想外だった。ちょっと調べた感じでは、この両関数から呼び出されるCOM_formatBlock()関数が遅いようだ。ここがボトルネックか?