SQLite Object Cache
A persistent object cache helps your site perform well. This one uses the widely available SQLite3 extension, and optionally the igbinary and APCu extensions to php. Many hosting services offer those extensions, and they are easy to install on a server you control. What is this about? It’s about making your site’s web server perform better. An object cache does that by reducing the workload on your MariaDB or MySQL database. This is not a page cache; these persistent objects go into a different kind of cache. These objects aren’t chunks of web pages ready for people to view in their browsers, they are data objects for use by the WordPress software. Caches are ubiquitous in computing, and WordPress has its own caching subsystem. Caches contain short-term copies of the results of expensive database lookups or computations, and allow software to use the copy rather than repeating the expensive operation. This plugin (like other object-caching plugins) extends WordPress’s caching subsystem to save those short-term copies from page view to page view. WordPress’s cache happens to be a memoization cache. Without a persistent object cache, every WordPress page view must use your MariaDB or MySQL database server to retrieve everything about your site. When a user requests a page, WordPress starts from scratch and loads everything it needs from your database server. Only then can it deliver content to your user. With a persistent object cache, WordPress immediately loads much of the information it needs. This lightens the load on your database server and delivers content to your users faster. Who should use this? If your site runs on a single web server machine, and that server provides the SQLite3 and igbinary extensions to php, this plugin will almost certainly make your site work faster. And if that server provides the APCu extension, this plugin uses it too. Some hosting providers offer redis cache servers. If your provider offers redis, it may be a good choice. You can use it via the Redis Object Cache plugin. Sites using redis have one SQL database and another non-SQL storage server: redis. Other hosting providers offer memcached, which has the Memcached Object Cache plugin. And some large multipurpose cache plugins, such as the LiteSpeed Cache, also offer object caching based on one of those cache server software packages. The cache-server approach to object caching comes into its own when you have multiple load-balanced web server machines handling your site. SQLite doesn’t work correctly in a multiple-web-server environment. But, for single-server site configurations, SQLite, possibly assisted by APCu, performs well. And the vast majority of sites are single-server. APCu APCu is an in-memory storage medium. It lets php programs, like WordPress, store data in shared memory so it’s very fast to retrieve when needed. If APCu is available on your host server, you can configure this plugin to use it. It reduces the typical cache lookup time to one-fifth or less of the SQLite lookup time, which is itself a few tens of microseconds. Performance counts, especially on busy web sites. Please look at Installation to learn how to configure this plugin to use APCu. The plugin works fast without it, and faster with it. WP-CLI: Even if APCu is in use, caching with SQLite is necessary when your web site uses WP-CLI, because WP-CLI programs do not have access to the APCu cache. This plugin writes all cached data both to APCu and to SQLite and makes sure the two are synchronized. WP-CLI You can control this plugin via WP-CLI once you activate it. Please type this command into your shell for details. wp help sqlite-object-cache Credits Thanks to Till Krüss. His Redis Object Cache plugin serves as a model for this one. And thanks to Ari Stathopoulos and Jonny Harris for reviewing this. Props to Matt Jones for finding and fixing a bug that appeared on a heavily loaded system. Thanks to Massimo Villa for testing help, and to nickchomey for a comprehensive code review. All defects are, of course, entirely the author’s responsibility. And thanks to Jetbrains for the use of their software development tools, especially PhpStorm. It’s hard to imagine how a plugin like this one could be developed without PhpStorm’s tools for exploring epic code bases like WordPress’s. How can I learn more about making my WordPress site more efficient? We offer several plugins to help with your site’s database efficiency. You can read about them here.
Top keywords
- cache17×2.27%
- server12×1.60%
- apcu10×1.33%
- site10×1.33%
- wordpress10×1.33%
- object9×1.20%
- database7×0.93%
- object cache7×0.93%
- redis6×0.80%
- web6×0.80%
- caching5×0.67%
- offer5×0.67%
WP-PJAX
THIS PLUGIN IS STILL EXPERIMENTAL – USE AT YOUR OWN RISK! The plugin is under development. Please try it and contact me if you encounter any bugs or have any questions or suggestions. If you want to help me develop this further send a pull request on GitHub. The plugin is not ready for production yet, but I will soon release version 0.1 that will be production ready. WP-PJAX – PJAX for WordPress Plugin. Makes your site faster and saves you a lot of bandwidth and CPU power by making your WordPress site PJAX powered! What is PJAX? PJAX is a technique that uses AJAX and PushState to deliver a faster browsing experience by only loading and updating parts of the page HTML each page load. PushState makes it possible to add real permalinks, page titles, and a working back button so that your visitors won’t be able to tell the difference between PJAX page load and ordinary full page loads, except for the increased speed of course :). Why PJAX? It makes your site significantly faster in most cases and saves you both processing power and bandwidth! Features Speeds up any website. With the built in page cache enabled you can expect 10-50+% faster page loads. Supports 4 Levels of application cache! This plugin uses browser cache and page cache. It is also enabling reverse proxy(i.e. Varnish) cache by (optionally) striping sessions and cookies and it works very well with underlaying object and database cache using third party cache plugins such as W3 Total Cache (recommended). Works well with W3 Total Cache. Configurable. No need to dig into the code. You will still need basic knowledge about HTML and how WordPress works to make this plugin reach it’s full potential. Live notices with a report for every page load (Load time, page cache hit or miss, Reverse proxy/Varnish cache miss or hit etc – See screenshot). This is great for debugging and testing and is of course only visible for admins. Only a few changes in your theme and you are ready to go. Should not take more than 5 minutes and requires only basic knowledge. Browser support PJAX is not supported in Internet Explorer 9 and earlier(IE 10+ supports this), but the plugin handles this gracefully by falling back on regular page loads for unsupported browsers. Details on browser support Development All development of this plugin occurs on GitHub. Please help me develop this by forking and sending pull requests. Planned features / To-Do Better handling of menu active classes. Will probably use regex for this. Support for marking parent pages active would be nice but I don’t know any good ways to accomplish that. Better control over exceptions for when to disable PJAX, when you use Page cache, and when and what cookies and sessions that should be striped. Regex support will be added. Refresh cache on publish/update. Separate loading of sidebars with separate cache. Page loading notice / icon. This should also be customizable with css, text(localizable) and it should be possible to upload your own icon. Page cache prefetch needs to be revisited. WP-Cron is a bit tricky and its hard to handle timeouts gracefully and reliably cross different environments. Remove all debug code and general code cleanup. This will be finished before the 0.1 release. Add an optional menu to the admin bar for clearing cache(all and current page). Optimize execution flow for better performance Maybe: Better way to generate the configurable javascript. I think of two options for this, ether use wp_localize_script to inject variables into javascript or to generate a javascript with PHP file when settings are saved. Known issues The PJAX toggle checkbox does not work. $.pjax.disable() does not seam to work as it should. Maybe I need to set a cookie with AJAX to set this for the current user and then handle it on the server side. Development All development of this plugin occurs on GitHub. Please help me develop this by forking and sending plull requests.