Preparser Cache
|
|
Author | Message |
This is a fairly simple pre-parser modification which should speed up one of MyBB's slowest functions.
Basically, MyBB's MyCode parser is rather slow; this plugin speeds this component up by caching the result so that the parser does not have to be run on every single page request (this is assuming that SHA1 hashing + a single query with some string manipulation is faster than running the parser 20+ times). This plugin is compatible with all supported DB engines (SQLite in MyBB 1.6.0 is bugged, so cannot be tested). Compatibility with other plugins Due to the fact that this modification changes the environment under which the parser is run, I cannot guarantee that this will work with all MyCode/HTML or parser related plugins, especially those that may display posts differently to different users (on the other hand, this actually may have the potential to remove some of the issues in some poorly coded modifications). Custom MyCodes should still work, and there is a workaround for the vB Quote plugin. This will not work with the HTML in Posts plugin. About design The design of this is much simpler than my mod for MyBB 1.2, and as such, is nowhere near as aggressive, however, it's something I (originally!) banged up together in about an hour, and gets most of the benefits anyway. It differs from both my 1.2 mod, and Ryan Gordon's 1.4 mod in that it operates at a parser level instead of at the showthread/postbit level. The plugin only does posts and signatures on showthread.php, but it can be quite easily modified for other places, as it operates on a parser level. Again, this was something I wrote fairly quickly, and could use a number of improvements in some areas. The cache is periodically cleaned via a cleanup task. Note Note that this plugin also provides a way to manually clear the cache, under the Recount & Rebuild section of the AdminCP, should you ever have the need to do so. Known Issues
Simple Benchmark Just a simple benchmark I performed to get an idea of the speed gains of this plugin. I'm benchmarking this page, with and without the plugin. I guess the page is somewhat a good candidate for this plugin, although I didn't exactly cherry pick it on purpose. Times were recorded by just using the time metric at the bottom of the page. Note that the plugin does a number of things after the timer has completed, so I've also made a comparison after modifying MyBB's timer to more accurately measure the time (if you don't perform this modification, the preparser mod should pretty much always make your showthread pages seem to run faster). Pages were loaded 3 times. Standard behaviour: 0.2359838s, 0.2380810s, 0.2462718s Standard behaviour, after editing timer: 0.2320759s, 0.2335730s, 0.2380040s With preparser (with timer edit): 0.1327140s, 0.1319780s, 0.1258268s With preparser (without timer edit (inaccurate)): 0.1291881s, 0.1186280s, 0.1211529s Initial load with preparser, timer edit: 0.2454121s (this is the page load which caches everything - it'll be slower than normal page loads, but subsequent requests will be much faster) 1.0 benchmarks: Standard behaviour: 0.2242870s, 0.2201211s, 0.2377510s Standard behaviour, after editing timer: 0.2399340s, 0.2398720s, 0.2158720s With preparser (with timer edit): 0.1303909s, 0.1500199s, 0.1303349s With preparser (without timer edit (inaccurate)): 0.1157429s, 0.1143448s, 0.1083250s
(This post was last modified: 04-02-2017 10:23 PM by ZiNgA BuRgA.)
|
Renegader
Junior Member
Posts: 2
Joined: Jul 2011 |
|
||
08-01-2011 11:26 PM |
|
ZiNgA BuRgA
|
|
||
08-02-2011 08:01 AM |
|
AglioEoliO
Junior Member
Posts: 39
Joined: Jan 2008 |
|
||
08-02-2011 11:23 AM |
|
ZiNgA BuRgA
|
|
||
08-02-2011 03:56 PM |
|
ZiNgA BuRgA
|
|
||
08-04-2011 10:44 AM |
|
Pirata Nervo
Member
Posts: 235
Joined: Jan 2008 |
|
||
08-06-2011 03:44 AM |
|
Shemo
Member
Posts: 184
Joined: Jan 2008 |
|
||
09-13-2011 08:03 AM |
|
ZiNgA BuRgA
|
|
||
09-13-2011 10:38 AM |
|
Shemo
Member
Posts: 184
Joined: Jan 2008 |
|
||
08-09-2012 01:59 PM |
|
ZiNgA BuRgA
|
|
||
08-09-2012 02:37 PM |
|
« Next Oldest | Next Newest »
|