Description
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 https://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%)
Installation
wp-content/uploads/l10n.pson must be writable
- Activate plugin
- Go to plugin’s settings page
- Hit the regenerate button
WP_DEBUG
must be false
Reviews
Contributors & Developers
“Cached l10n” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Cached l10n” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.2.2
- Refactored code
- Fixed small issues
0.2
- Refactored code
- Added some detection when translations change
0.1
- Orignal submission