Category:Pages with too many expensive parser function calls

From OpenStreetMap Wiki
Jump to: navigation, search

This category is populated automatically by the MediaWiki software. It lists articles that issue too many expensive parser function calls. Expensive function calls include notably:

  • {{#ifexist:Full page name}} and
  • {{PAGESINCATEGORY:Category name}}.

These pages (or the templates they call) should perhaps be edited to reduce the number of expensive calls.

Currently this wiki only allows less than 100 expensive function calls per page. Note that multiple calls in the same current page to {{#ifexist:Full page name}} for the same tested page name are counted only once as their results are cached and reused (this test is performed only once). This limit may be easily exhausted sometimes by some navigation templates, which should be tuned to reduce the number of tests performed as much as possible by being more selective about what they will display, or by using them with a flag parameter that will avoid using page existence tests even if they generate some "red" links, and by avoiding overcategorisation with multiple categories tested independantly (this may happen when testing the existence of categories for geographic places: those templates need to be fixed).

See also Expensive parser function calls wikipedia:template limits on Wikipedia (however Wikipedia has increased this limit to a higher value of 500, compared to the OSM wiki hosted on a smaller server with more limited computing resources). The limit is defined by $wgExpensiveParserFunctionLimit in the internal MediaWiki configuration variables for the local wiki).

On this wiki, this limit is often exhausted if an article includes Template:Languages more than once (with distinct base page names in their parameter or its default value):

It can also happen when the {{Tag}} template is frequent in the page; you can fix this by adding explicit kl= or vl= parameters where there is tag documentation in the same language as the page.

  • It currently happens within translated pages (not in English pages) that include many inclusions of {{Tag}} because this attempts to detect if a translated "lang:Tag:*=*" or "lang:Key:*" exists in order to render a link to that translated page, instead of the default page in English. However this is "safe" for this template because the test with the expensive #ifexist parser function will return false if there are too many, and then only a link to the English page will be returned.
  • There's no easy way to fix that, except by adding a parameter to {{Tag}} to force the translated link to be returned unconditionally (without testing its existence: in that case a red link could be generated to the inexistent translated "Key:" or "Tag:" page, even if an English page exists for the same key or tag). This can be done by setting the explicit kl and vl parameter to {{Tag}} with a valid non empty language code; or specify kl=en explicitly to link unconditionally to the English "Key:" page, or vl=en for the English "Tag:" page for the value).

Pages in category ‘Pages with too many expensive parser function calls’

The following 108 pages are in this category, out of 108 total.