[pmwiki-users] speeding up page lists

Hans design5 at softflow.co.uk
Thu Jul 30 02:59:00 CDT 2009

I wonder if we can compile some info regars how to speed up pagelists.

I can see three measures which will speed up pagelist, but there may
well be more, and it may need better info for which situations each
is suitable:

* First measure:
I think the biggest speed improvement can be achieved with setting

   $EnablePageListProtect = 0;

By default $EnablePageListProtect is true, which results in all
matching pages being opened to check if there is a 'read' password
set on any, in order to exclude such  a page from the results if the
user has no 'read' authorisation. This slows down pagelist

$EnablePageListProtect = 0; can be set confidently for wikis which
have no read protected pages.

If only some pages or groups are read protected, for instant one may
wish to read protect the pages in 'SiteAdmin' group, then it may be
sufficient to include such pages/groups in $SearchPatterns['default'],

   $SearchPatterns['default'][] = '!^SiteAdmin\\.!';

so such pages will not show up in normal searches and pagelists.
Still, with setting parameter list=all in a pagelist or search markup
such pages will show up in the resulting list. But if you have
control an dtrust on who is editing the wiki this may be peferctly

* Second measure:
Create a Pagelist cache:
Create a directory 'work.d' and set
    $PageListCacheDir = 'work.d/';

This will speed up not the first time pagelist results are compiled,
but any subsequebnt times the same pagelist is called.
Even with the default $EnablePageListProtect = true; the pagelist is
fast. This is very useful if there are no page additions or deletions
expected, since pagelist will not check for such, but will use the
cached result if available. For pagelists for which one expects changes
one can set a pagelist parameter chache=0 to suppress reading from
the cache.

* Third measure:
I noticed it can cost time to open up  a lot of page store
directories in order to merge the page files into one array.
To have per group subdirectories slows pagelist down. The least
page store directories there  are the quicker.


More information about the pmwiki-users mailing list