Cached l10n

Caches the global variable $l10n, which stores all translations for considerable speed improvement.

Author:seb@wemakecustom.com (profile at wordpress.org)
WordPress version required:3.0.1
WordPress version tested:3.5.2
Plugin version:0.2.2
Added to WordPress repository:23-04-2013
Last updated:23-04-2013
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:100
Rated by:3
Plugin URI:
Total downloads:1 807
Active installs:10+
plugin download
Click to start download

Upon inspection using xhProf, I realized that the PHP implementation loading the MO files is really slow.
From my tests, about 25% to 40% of the time WordPress spends rendering the page is actually spent locating, parsing and merging all the translation files.

This plugin works by caching the whole $l10n variable holding all the text domains and overridding the load_textdomain.

Caching is done using serialize and written to wp-content/uploads/l10n.pson.
Be sure to regenerate the cache if a .mo changes.

TODO

  • Provide a better UI page

Speed comparison

Comparing WordPress Gettext loading vs this plugin.

Using the average response time of:
siege -c 1 -r 100 -b http://localhost/

Vanilla: Fresh install of WordPress
Common: WPML, Types, Views, and Gravity Forms
Total Cache: Common + Total Cache (APC object/database cache, no page cache)
BuddyPress: BP-Registration-Options, BP Show Friends, BuddyPress, BuddyPress Activity Plus, Gravity Forms, Invite Anyone, U BuddyPress Forum Attachment, U BuddyPress Forum Editor, User Switching

            Vanilla         Common          Total Cache     BuddyPress
Native      202 ms          565 ms          478 ms          567 ms
Cached      193 ms (-5%)    322 ms (-43%)   333 ms (-30%)   431 ms (-24%)

ChangeLog