[pmwiki-users] Question regarding slow page loading with attr set

Petko Yotov 5ko at 5ko.fr
Sun Apr 14 05:42:14 PDT 2024


On 14/04/2024 13:41, Hans Bracker wrote:
>  see this
>  post this
>  edit this
>  admin this
>  upload this
...
> You can see the five extra calls to ReadPage in case 2 and 3,

Do you have 5 different levels (read, post, edit, admin, upload)? If so, 
it is normal that the page file is opened 5 times.

Permissions are cached per page and per level, or per "page+level". So 
you had "page+read", "page+post", etc. each calling RetrieveAuthPage, 
then cached.

If you had 5 times (:if auth edit:), it would cache the "edit" level 
perms for the current page the first time, and for the next ifs it would 
return the cached perms and not reopen the page.

Before the latest revision, 5 times (:if auth edit:) would open the page 
file 5 times, one for each "if" and verifies the password, if any. Now 
it opens and verifies the first time only.

> and case 2 is a lot faster, as fast as without conditionals!

It seems your operating system is caching recently opened files, like 
mine. Which suggests, as I suspected, that most of the time is spent 
verifying a password.

RetrieveAuthPage is complex to change, as it may return a page with full 
history or partial history, or only the latest text and metadata. The 
conditional markup, and many recipes, don't need this, they only need to 
check the permissions.

Maybe we can add a new function optimized for checking permissions only, 
that will return neither the page text nor the history, but will cache 
the page attributes so that they could be re-checked for different 
levels without reopening the page. But if the password verification 
takes most of the time, the improvements may not be noticeable.

Petko



More information about the pmwiki-users mailing list