概要

ls2プラグインは、呼び出されるたびにget_existpages()を呼び出すので、 全体で数万ページあるようなサイトでは、ページ内に何度も#ls2を書くと 無視できないほど遅くなります。

get_existpages()の結果をキャッシュして、複数回呼ばれたときの処理を高速化します。

内容

$ diff -u ls2.inc.php.original ls2.inc.php
--- ls2.inc.php.original        2004-12-05 20:37:37.000000000 +0900
+++ ls2.inc.php 2011-04-01 01:52:35.372269811 +0900
@@ -86,14 +86,18 @@
 function plugin_ls2_show_lists($prefix, & $params)
 {
        global $_ls2_err_nopages;
+       static $s_cached_existpages = null;
 
        $pages = array();
+       if ($s_cached_existpages === null) {
+               $s_cached_existpages = get_existpages();
+       }
        if ($prefix != '') {
-               foreach (get_existpages() as $_page)
+               foreach ($s_cached_existpages as $_page)
                        if (strpos($_page, $prefix) === 0)
                                $pages[] = $_page;
        } else {
-               $pages = get_existpages();
+               $pages = $s_cached_existpages;
        }
 
        natcasesort($pages);

効果

コメント



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-03-07 (水) 00:48:02
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.190 sec.

SourceForge