<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dev4Press&#187; different loading stages Tag Archives, page 1 of 1 | Dev4Press</title>
	<atom:link href="http://www.dev4press.com/tag/different-loading-stages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dev4press.com</link>
	<description>Premium Plugins and Themes for WordPress</description>
	<lastBuildDate>Sun, 19 May 2013 12:20:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Plugins performance testing: 2012 / January</title>
		<link>http://www.dev4press.com/2012/blog/benchmark/plugins-performance-testing-2012-january/</link>
		<comments>http://www.dev4press.com/2012/blog/benchmark/plugins-performance-testing-2012-january/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 17:00:21 +0000</pubDate>
		<dc:creator>MillaN</dc:creator>
				<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[accurate resource usage]]></category>
		<category><![CDATA[complex implication]]></category>
		<category><![CDATA[different loading stages]]></category>
		<category><![CDATA[GD Press Tools]]></category>
		<category><![CDATA[grades]]></category>
		<category><![CDATA[historical data]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[local server]]></category>
		<category><![CDATA[measurements]]></category>
		<category><![CDATA[monthly test]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[plugin code]]></category>
		<category><![CDATA[plugin configurations]]></category>
		<category><![CDATA[plugins snapshots]]></category>
		<category><![CDATA[resource usage]]></category>
		<category><![CDATA[server configuration]]></category>

		<guid isPermaLink="false">http://www.dev4press.com/?p=12577</guid>
		<description><![CDATA[This is first basic performance testing for WordPress plugins in 2012, and it will include 30 plugins. They will be tested on how much resources they use to load, and not to tell you if the plugin is good or not. Plugins features and plugin code quality is not the reviewed here.]]></description>
				<content:encoded><![CDATA[<p>This is first basic performance testing for WordPress plugins in 2012, and it will include 30 plugins. They will be tested on how much resources they use to load, and not to tell you if the plugin is good or not. Plugins features and plugin code quality is not the reviewed here.</p>
<p>Plan was to have more, but this first monthly measurement will have 30 instead of 50 plugins. But, this list will change over time, and new plugins will be added to the mix, and some of previously tested will be removed. But, from next month I will have publicly available table with all historical data for all tested versions.</p>
<blockquote><p><strong>All the data displayed here</strong> may vary depending on server configuration and other factors. Data here doesn&#8217;t say anything about quality of the plugins or their usability, it is only a test of resource usage. Also, some of the plugin can use different amount of resources depending on the plugin configuration, and all tests here are done with default plugin configurations. There is no way to test complex implication of different settings or method of work for a test like this.</p></blockquote>
<h3>Measurement Process</h3>
<p>For this first monthly test I have tested 30 plugins. All tests are done with a single installation, and WordPress 3.3 was used. Tests are done on the local server with PHP 5.3.8. All measurements are done using <a title="GD Press Tools Pro" href="http://www.dev4press.com/plugins/gd-press-tools/" target="_blank">GD Press Tools Pro 4.3.2</a> plugin. Plugin has a tracker class that can be loaded from wp-config.php file to accurately capture snapshots of different loading stages (among other things). To allow capturing plugins snapshots, I made small change to WordPress core files: added snapshot call into loop that loads plugins.</p>
<p>To get as accurate resource usage I spent some time testing each plugin individually to measure used memory during loading and after all plugins are loaded. Some plugins load most of its files hooked to WordPress action, and not during loading of the plugin. Again, this number is not 100% accurate, but it is very close. As these tests are improved over the next few months, the numbers can vary a bit.</p>
<h3>Plugin Grading</h3>
<p>Each plugin is graded on a scale from 1 (worst loading optimization) to 5 (best loading optimization). This grade is not only connected to used resources, but to actual method of loading plugin uses. Plugins that got grade 1 have no loading optimization and they always load everything (or almost everything) and that uses precious server resources always, even if the plugin doesn&#8217;t need all things loaded. There is no perfect loading method, because it would be very complicated to do. But grade 5 goes to plugins that use loading optimization, that care about what WordPress is executing, and how much resources are used actually. Change column for this first test is empty (well it is set to =), and it will change with next test depending on the progress plugin developers do with their plugins.</p>
<p>To give plugin a grade, I have analyzed plugin loading process and I have taken into account how much resources plugin takes due to loading method it uses. Best loading optimized plugin I know is my own GD Press Tools Pro. If this plugin is to load all its parts always it would use twice as much memory and it would need much more time to load. Even with all that, I always work on further changing how the plugin loads trying to make it better. Plugins close or better to the level of optimization in GD Press Tools Pro will be graded 5 also. If the plugin uses different amount of memory on front and back end it doesn&#8217;t mean that the grade will be higher because of that.</p>
<blockquote><p>Before we go on to the testing, read the original article from last month regarding the plugin loading process that will give the reasons for such testing and why it is important to make sure that plugin loads parts it needs only for admin side and front end: <a href="http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/" target="_blank">Measuring impact of plugins on WordPress loading</a>.</p></blockquote>
<h3>Tested plugins basic information</h3>
<p>30 tested plugins are listed in the table below. Beside basic data in first 5 columns, you can see if plugin adds own JavaScript, how many AJAX handlers uses, how many cron jobs can be registered by this plugin (it doesn&#8217;t mean that all will be registered always) and how many widgets plugin can add.</p>
<table class="d4ptable d4ppluginsinfo">
<thead>
<tr>
<th>Plugin</th>
<th>Free</th>
<th>Version</th>
<th>Released</th>
<th>Website</th>
<th>JavaScript</th>
<th>Ajax</th>
<th>Crons</th>
<th>Widgets</th>
</tr>
</thead>
<tbody>
<tr>
<td>Adminimize</td>
<td>Yes</td>
<td>1.7.24</td>
<td>2011.12.19.</td>
<td><a href="http://bueltge.de/wordpress-admin-theme-adminimize/674/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>All In One SEO Pack</td>
<td>Yes</td>
<td>1.6.13.8</td>
<td>2011.12.10.</td>
<td><a href="http://michaeltorbert.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Antispam Bee</td>
<td>Yes</td>
<td>2.3</td>
<td>2011.12.23.</td>
<td><a href="http://antispambee.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>BackWPUp</td>
<td>Yes</td>
<td>2.1.7</td>
<td>2011.12.16.</td>
<td><a href="http://backwpup.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>7</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td>bbPress</td>
<td>Yes</td>
<td>2.0.2</td>
<td>2011.11.28.</td>
<td><a href="http://bbpress.org/" target="_blank">Home</a></td>
<td>Yes</td>
<td>2</td>
<td>0</td>
<td>5</td>
</tr>
<tr>
<td>Contact Form 7</td>
<td>Yes</td>
<td>3.0.2.1</td>
<td>2011.12.18.</td>
<td><a href="http://contactform7.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>*</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Events Manager</td>
<td>Yes</td>
<td>5.0.1</td>
<td>2012.01.02.</td>
<td><a href="http://wp-events-plugin.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>2</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>FPW Category Thumbnails</td>
<td>Yes</td>
<td>1.4.2</td>
<td>2012.01.02.</td>
<td><a href="http://fw2s.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>FPW Post Instructions</td>
<td>Yes</td>
<td>1.2.3</td>
<td>2012.01.02.</td>
<td><a href="http://fw2s.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>GD Affiliate Center Pro</td>
<td>No</td>
<td>1.3.8</td>
<td>2011.12.31.</td>
<td><a href="http://www.dev4press.com/plugins/gd-affiliate-center/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td>GD bbPress Attachments</td>
<td>Yes</td>
<td>1.5.3</td>
<td>2011.12.28.</td>
<td><a href="http://www.dev4press.com/plugins/gd-bbpress-attachments/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>GD Custom Posts And Taxonomies Tools Lite</td>
<td>Yes</td>
<td>1.5.0</td>
<td>2011.12.28.</td>
<td><a href="http://www.dev4press.com/plugins/gd-taxonomies-tools/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>GD Custom Posts And Taxonomies Tools Pro</td>
<td>No</td>
<td>3.5.6</td>
<td>2011.12.29.</td>
<td><a href="http://www.dev4press.com/plugins/gd-taxonomies-tools/" target="_blank">Home</a></td>
<td>Yes</td>
<td>12</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>GD Press Tools Pro</td>
<td>No</td>
<td>4.3.2</td>
<td>2011.12.28.</td>
<td><a href="http://www.dev4press.com/plugins/gd-press-tools/" target="_blank">Home</a></td>
<td>Yes</td>
<td>30</td>
<td>7</td>
<td>0</td>
</tr>
<tr>
<td>GD Unit Converter</td>
<td>Yes</td>
<td>1.1.1</td>
<td>2011.12.12.</td>
<td><a href="http://www.dev4press.com/plugins/gd-unit-converter/" target="_blank">Home</a></td>
<td>Yes</td>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Gravity Forms</td>
<td>No</td>
<td>1.6.2</td>
<td>2011.12.04.</td>
<td><a href="http://www.gravityforms.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>17</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>JigoShop</td>
<td>Yes</td>
<td>0.9.9.3.1</td>
<td>2011.12.28.</td>
<td><a href="http://jigoshop.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>7</td>
<td>1</td>
<td>8</td>
</tr>
<tr>
<td>Lightbox Plus</td>
<td>Yes</td>
<td>2.4.6</td>
<td>2012.01.01.</td>
<td><a href="http://www.23systems.net/plugins/lightbox-plus/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>MarketPress Lite</td>
<td>Yes</td>
<td>2.4.2</td>
<td>2011.12.17.</td>
<td><a href="http://premium.wpmudev.org/project/e-commerce-lite/" target="_blank">Home</a></td>
<td>Yes</td>
<td>3</td>
<td>0</td>
<td>4</td>
</tr>
<tr>
<td>Members</td>
<td>Yes</td>
<td>0.2</td>
<td>2011.06.13.</td>
<td><a href="http://justintadlock.com/archives/2009/09/17/members-wordpress-plugin/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>NextGEN Gallery</td>
<td>Yes</td>
<td>1.9.1</td>
<td>2011.12.10.</td>
<td><a href="http://alexrabe.de/?page_id=80" target="_blank">Home</a></td>
<td>Yes</td>
<td>10</td>
<td>0</td>
<td>3</td>
</tr>
<tr>
<td>Smart Youtube PRO</td>
<td>Yes</td>
<td>4.0.3</td>
<td>2011.12.09.</td>
<td><a href="http://www.prelovac.com/vladimir/wordpress-plugins/smart-youtube/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>Subscribe to Comments Reloaded</td>
<td>Yes</td>
<td>2.0.2</td>
<td>2011.08.31.</td>
<td><a href="http://wordpress.org/extend/plugins/subscribe-to-comments-reloaded/" target="_blank">Home</a></td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Subscribe2</td>
<td>Yes</td>
<td>7.0.1</td>
<td>2011.12.14.</td>
<td><a href="http://subscribe2.wordpress.com/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>SyntaxHighlighter Evolved</td>
<td>Yes</td>
<td>3.1.3</td>
<td>2011.11.17.</td>
<td><a href="http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>TinyMCE Advanced</td>
<td>Yes</td>
<td>3.4.5</td>
<td>2011.12.12.</td>
<td><a href="http://www.laptoptips.ca/projects/tinymce-advanced/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>W3 Total Cache</td>
<td>Yes</td>
<td>0.9.2.4</td>
<td>2011.08.26.</td>
<td><a href="http://www.w3-edge.com/wordpress-plugins/w3-total-cache/" target="_blank">Home</a></td>
<td>Yes</td>
<td>0</td>
<td>8</td>
<td>0</td>
</tr>
<tr>
<td>WooCommerce</td>
<td>Yes</td>
<td>1.3.2.1</td>
<td>2011.12.15.</td>
<td><a href="http://www.woothemes.com/woocommerce/" target="_blank">Home</a></td>
<td>Yes</td>
<td>17</td>
<td>0</td>
<td>14</td>
</tr>
<tr>
<td>WordPress SEO by Yoast</td>
<td>Yes</td>
<td>1.1.2</td>
<td>2011.12.16.</td>
<td><a href="http://yoast.com/wordpress/seo/" target="_blank">Home</a></td>
<td>Yes</td>
<td>4</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>WP e-Commerce</td>
<td>Yes</td>
<td>3.8.7.4</td>
<td>2011.12.08.</td>
<td><a href="http://getshopped.org/" target="_blank">Home</a></td>
<td>Yes</td>
<td>7</td>
<td>1</td>
<td>8</td>
</tr>
</tbody>
</table>
<p>All tested plugins, but one, used the internal WordPress AJAX handling. Contact Form 7 uses own handler and that is not something I can recommend. Using WP handler is best solution considering that it is already written with security concerns in mind and it is very easy to use, making plugin fit better with WP development concepts.</p>
<h3>Resource Usage Test Results</h3>
<p>Here is the list of all plugins in this test, and the results.</p>
<table class="d4ptable d4ppluginsmonthly">
<thead>
<tr>
<th></th>
<th colspan="4">Administration</th>
<th colspan="4">Frontend</th>
<th colspan="2">Grade</th>
</tr>
<tr>
<th>Plugin</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
<th>Change</th>
<th>Grade</th>
</tr>
</thead>
<tbody>
<tr>
<td>Adminimize</td>
<td>0.8</td>
<td>0</td>
<td>0.015</td>
<td>9</td>
<td>0.8</td>
<td>0</td>
<td>0.014</td>
<td>9</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>All In One SEO Pack</td>
<td>0.5</td>
<td>1</td>
<td>0.011</td>
<td>12</td>
<td>0.5</td>
<td>1</td>
<td>0.011</td>
<td>12</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>Antispam Bee</td>
<td>0.3</td>
<td>1</td>
<td>0.004</td>
<td>2</td>
<td>0.2</td>
<td>0</td>
<td>0.004</td>
<td>6</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>BackWPUp</td>
<td>0.4</td>
<td>0</td>
<td>0.006</td>
<td>9</td>
<td>0.5</td>
<td>0</td>
<td>0.007</td>
<td>9</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>bbPress</td>
<td>4</td>
<td>0</td>
<td>0.056</td>
<td>216</td>
<td>3.8</td>
<td>0</td>
<td>0.046</td>
<td>205</td>
<td>=</td>
<td>1</td>
</tr>
<tr>
<td>Contact Form 7</td>
<td>0.4</td>
<td>0</td>
<td>0.009</td>
<td>17</td>
<td>0.5</td>
<td>0</td>
<td>0.007</td>
<td>16</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>Events Manager</td>
<td>5</td>
<td>2</td>
<td>0.07</td>
<td>75</td>
<td>3.7</td>
<td>2</td>
<td>0.052</td>
<td>64</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>FPW Category Thumbnails</td>
<td>0.3</td>
<td>1</td>
<td>0.004</td>
<td>9</td>
<td>0.3</td>
<td>1</td>
<td>0.004</td>
<td>1</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>FPW Post Instructions</td>
<td>0.1</td>
<td>0</td>
<td>0.003</td>
<td>7</td>
<td>0.1</td>
<td>0</td>
<td>0.003</td>
<td>1</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>GD Affiliate Center Pro</td>
<td>1.2</td>
<td>0</td>
<td>0.023</td>
<td>16</td>
<td>0.8</td>
<td>0</td>
<td>0.015</td>
<td>9</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>GD bbPress Attachments</td>
<td>0.2</td>
<td>0</td>
<td>0.005</td>
<td>1</td>
<td>0.2</td>
<td>0</td>
<td>0.004</td>
<td>1</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>GD Custom Posts And Taxonomies Tools Lite</td>
<td>1.5</td>
<td>0</td>
<td>0.019</td>
<td>13</td>
<td>1.3</td>
<td>0</td>
<td>0.016</td>
<td>7</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>GD Custom Posts And Taxonomies Tools Pro</td>
<td>2.3</td>
<td>0</td>
<td>0.033</td>
<td>49</td>
<td>1.6</td>
<td>0</td>
<td>0.025</td>
<td>24</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>GD Press Tools Pro</td>
<td>2.9</td>
<td>0</td>
<td>0.038</td>
<td>79</td>
<td>2</td>
<td>0</td>
<td>0.028</td>
<td>39</td>
<td>=</td>
<td>5</td>
</tr>
<tr>
<td>GD Unit Converter</td>
<td>0.5</td>
<td>0</td>
<td>0.011</td>
<td>4</td>
<td>0</td>
<td>0</td>
<td>0.001</td>
<td>0</td>
<td>=</td>
<td>5</td>
</tr>
<tr>
<td>Gravity Forms</td>
<td>2.9</td>
<td>0</td>
<td>0.03</td>
<td>4</td>
<td>2.9</td>
<td>0</td>
<td>0.027</td>
<td>4</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>JigoShop</td>
<td>3.6</td>
<td>0</td>
<td>0.059</td>
<td>148</td>
<td>2.8</td>
<td>0</td>
<td>0.044</td>
<td>105</td>
<td>=</td>
<td>1</td>
</tr>
<tr>
<td>Lightbox Plus</td>
<td>0.7</td>
<td>0</td>
<td>0.012</td>
<td>8</td>
<td>0.7</td>
<td>0</td>
<td>0.012</td>
<td>7</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>MarketPress Lite</td>
<td>2.4</td>
<td>0</td>
<td>0.026</td>
<td>44</td>
<td>2.4</td>
<td>0</td>
<td>0.027</td>
<td>44</td>
<td>=</td>
<td>1</td>
</tr>
<tr>
<td>Members</td>
<td>0.2</td>
<td>0</td>
<td>0.002</td>
<td>5</td>
<td>0.1</td>
<td>0</td>
<td>0.002</td>
<td>5</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>NextGEN Gallery</td>
<td>1.8</td>
<td>0</td>
<td>0.027</td>
<td>32</td>
<td>1.5</td>
<td>0</td>
<td>0.021</td>
<td>21</td>
<td>=</td>
<td>4</td>
</tr>
<tr>
<td>Smart Youtube PRO</td>
<td>0.7</td>
<td>0</td>
<td>0.014</td>
<td>10</td>
<td>0.6</td>
<td>0</td>
<td>0.007</td>
<td>10</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>Subscribe to Comments Reloaded</td>
<td>0.3</td>
<td>2</td>
<td>0.006</td>
<td>17</td>
<td>0.3</td>
<td>2</td>
<td>0.005</td>
<td>3</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>Subscribe2</td>
<td>1.3</td>
<td>0</td>
<td>0.014</td>
<td>2</td>
<td>1.3</td>
<td>0</td>
<td>0.012</td>
<td>2</td>
<td>=</td>
<td>1</td>
</tr>
<tr>
<td>SyntaxHighlighter Evolved</td>
<td>0.4</td>
<td>0</td>
<td>0.004</td>
<td>1</td>
<td>0.4</td>
<td>0</td>
<td>0.005</td>
<td>1</td>
<td>=</td>
<td>2</td>
</tr>
<tr>
<td>TinyMCE Advanced</td>
<td>0.9</td>
<td>0</td>
<td>0.011</td>
<td>13</td>
<td>0.9</td>
<td>0</td>
<td>0.012</td>
<td>13</td>
<td>=</td>
<td>3</td>
</tr>
<tr>
<td>W3 Total Cache</td>
<td>1.5</td>
<td>0</td>
<td>0.02</td>
<td>46</td>
<td>0.3</td>
<td>0</td>
<td>0.005</td>
<td>19</td>
<td>=</td>
<td>5</td>
</tr>
<tr>
<td>WooCommerce</td>
<td>3.2</td>
<td>0</td>
<td>0.056</td>
<td>100</td>
<td>3.4</td>
<td>0</td>
<td>0.051</td>
<td>134</td>
<td>=</td>
<td>1</td>
</tr>
<tr>
<td>WordPress SEO by Yoast</td>
<td>1.4</td>
<td>4</td>
<td>0.022</td>
<td>22</td>
<td>0.7</td>
<td>4</td>
<td>0.013</td>
<td>19</td>
<td>=</td>
<td>5</td>
</tr>
<tr>
<td>WP e-Commerce</td>
<td>1.3</td>
<td>0</td>
<td>0.019</td>
<td>47</td>
<td>1.3</td>
<td>0</td>
<td>0.019</td>
<td>47</td>
<td>=</td>
<td>2</td>
</tr>
</tbody>
</table>
<p>So, let&#8217;s start with the good. My GD Press Tools Pro is very fine tuned to load different plugin parts when needed, and it is always evolving and improving. GD Unit Converter on the original test was badly graded, but with latest version I have changed it all, and it graded 5.  W3 Total Cache has very good optimization of resource usage, and loads a lot of things when needed only. Loader maybe a too complicated for my taste, but it is effective. WordPress SEO by Yoast is a great example of well written and optimized plugin.</p>
<p>Plugins with potential to be better are many, and all grade 3 and 4 plugins fit into this group. NextGEN Gallery is almost there, and with a bit more work, it can go to grade 5. I plan to improve my own plugins further, and work on that is in progress for some of them, so I expect them to be improved in the next tests.</p>
<p>Grade 2 plugins have only some elements of optimization, but they are close to grade 1. Adminimize plugin shouldn&#8217;t even load on the front end except for some elements, and that needs to be optimized. Gravity Forms is a great plugin, that needs a long way to go but at least has some sort of loading control.</p>
<p>As for the grade 1 plugins, the results may be surprising considering how popular some of this plugins are. WooCommerce started from JigoShop, but almost nothing is done to change awful loader JigoShop has, so they are both graded 1. Mike Jolley from WooThemes told me that they are working on improving WooCommerce so, I am looking forward to that. bbPress also has no optimization at all, and even from latest sources for 2.1 I don&#8217;t see any improvements there, and that is not a good sign.</p>
<h3>Why is this all important?</h3>
<p>WordPress loads plugins on both admin side and front end. But, most plugins don&#8217;t need to behave same way in both cases. Many plugins are needed only on one side. So, a plugin can be used on admin side only, and has no use on the admin side. If the plugin is not optimize to load files only when needed, it will take same resources on front end also, even so it is not needed or used, and that is a waste of server memory and time to load. Most plugins have two parts, one to be used on admin side to set the plugin, and other that works on the front end. No need to load everything on both sides, load only what the plugin needs, and it will use least amount of memory and it will work faster.</p>
<p>Should you care? No. And yes. If you run few plugins, than amount of memory used is not that relevant. If you run your website on VPS or dedicated server, you have much more memory available, but if you are on the shared hosting, every MB can be critical (especially if the hosting company limits it). This test is not about plugin quality. If you prefer using All In One SEO, don&#8217;t let the lower grade be a big concern because WordPress SEO plugin got higher grade. This tests show how the plugin handle resources nothing more.</p>
<h3>Improving results</h3>
<p>I am sure that many developers will say that these results are not important, but considering that most of the WordPress users are on shared hosting with limited memory and resources available to them, this is most important thing to have plugins they need and still have server running fine. Same thing goes for themes also. Dev4Press website uses 20-21 plugins for the last year, but with theme (my xScape Theme Framework based) and my plugins optimizations, I managed to lower memory usage from 60M last January to 40M today.</p>
<p>I recommend to all plugin developers to read my tutorial: <a href="http://www.dev4press.com/2011/tutorials/wordpress/practical/how-to-optimize-plugin-loading/" target="_blank">How to optimize plugin loading</a>. Most of the things from it can be applied to all plugins, and all users will benefit from developers investing extra time to optimize own plugins.</p>
<hr />
<p><strong>Edit 2012.01.05.</strong> &#8211; Updated grade information.<strong><br />
Edit 2012.01.06.</strong> &#8211; Added few more explanations and link to original loading impact article.</p>
<script src="http://feeds.feedburner.com/~s/adsense@gdragon.info?i=http://www.dev4press.com/2012/blog/benchmark/plugins-performance-testing-2012-january/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://www.dev4press.com/2012/blog/benchmark/plugins-performance-testing-2012-january/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Measuring impact of plugins on WordPress loading</title>
		<link>http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/</link>
		<comments>http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 17:30:12 +0000</pubDate>
		<dc:creator>MillaN</dc:creator>
				<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[active plugins]]></category>
		<category><![CDATA[different loading stages]]></category>
		<category><![CDATA[GD Affiliate Center]]></category>
		<category><![CDATA[GD Press Tools]]></category>
		<category><![CDATA[GD Star Rating]]></category>
		<category><![CDATA[GD Unit Converter]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[hosting companies]]></category>
		<category><![CDATA[impact]]></category>
		<category><![CDATA[loader]]></category>
		<category><![CDATA[loading impact]]></category>
		<category><![CDATA[loading optimization]]></category>
		<category><![CDATA[measurement]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[plugins snapshots]]></category>
		<category><![CDATA[shared hosting]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<category><![CDATA[WordPress SEO]]></category>
		<category><![CDATA[worst loading stats]]></category>
		<category><![CDATA[YOURLS]]></category>

		<guid isPermaLink="false">http://www.dev4press.com/?p=11630</guid>
		<description><![CDATA[One of the best things about WordPress are plugins. With plugins you can expand WordPress and make it into anything you need it to be. But, each plugin requires time for loading and processing and it takes up additional resources. How much exactly one plugin need?]]></description>
				<content:encoded><![CDATA[<p>One of the best things about WordPress are plugins. With plugins you can expand WordPress and make it into anything you need it to be. But, each plugin requires time for loading and processing and it takes up additional resources. How much exactly one plugin need?</p>
<h3>Measurement Process</h3>
<p>For this article I have tested 35 plugins. This includes both free and commercial plugins, big and small plugins and all of them are tested on the admin side and on the website frontend. All tests are done with a single installation, and WordPress 3.3 RC1 was used. Tests are done on the local server with PHP 5.3.8.</p>
<p>Testing exact impact of plugins on WordPress is not easy, since there are two things that happen during the loading process. First part is WordPress loading the plugin (using PHP <strong>include</strong> function). Second part is done through actions and filters added by plugin to WordPress during loading stage. First part is not to complicated to measure and that is what you have in the table below. Second part is very complicated to measure because it would need tracking of each action or filter executed. This second part is even more complex if you take into account that different actions and filters are executed only on some of the pages or panels.</p>
<p>All measurements are done using <a title="GD Press Tools Pro" href="http://www.dev4press.com/plugins/gd-press-tools/" target="_blank">GD Press Tools Pro 4.3.1</a> plugin. Plugin has a tracker class that can be loaded from wp-config.php file to accurately capture snapshots of different loading stages (among other things). To allow capturing plugins snapshots, I made small change to WordPress core files: added snapshot call into loop that loads plugins.</p>
<h3>Measurement Results</h3>
<p>35 tested plugins are listed in the table below. You can see how much memory each plugin needs during loading, how many SQL queries are run and how many hooks attached to WordPress, as well as the total time needed for this loading stage. All this is done on the admin side (dashboard) and on the frontend (home page).</p>
<table class="d4ptable d4ppluginsbench">
<thead>
<tr>
<th></th>
<th colspan="4">Administration</th>
<th colspan="4">Frontend</th>
</tr>
<tr>
<th>Plugin</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
</tr>
</thead>
<tbody>
<tr>
<th>After The Deadline</th>
<td>0.1M</td>
<td>0</td>
<td>0.004</td>
<td>10</td>
<td>0.1M</td>
<td>0</td>
<td>0.005</td>
<td>10</td>
</tr>
<tr>
<th>Akismet</th>
<td>0.2M</td>
<td>2</td>
<td>0.006</td>
<td>19</td>
<td>0.1M</td>
<td>1</td>
<td>0.004</td>
<td>7</td>
</tr>
<tr>
<th>All In One SEO Pack</th>
<td>0.7M</td>
<td>1</td>
<td>0.010</td>
<td>12</td>
<td>0.7M</td>
<td>1</td>
<td>0.012</td>
<td>12</td>
</tr>
<tr class="opt-plus-one">
<th>Antispam Bee</th>
<td>0.3M</td>
<td>1</td>
<td>0.004</td>
<td>2</td>
<td>0.2M</td>
<td>0</td>
<td>0.005</td>
<td>6</td>
</tr>
<tr class="opt-plus-one">
<th>BackupBuddy</th>
<td>1.0M</td>
<td>1</td>
<td>0.099</td>
<td>30</td>
<td>0.6M</td>
<td>0</td>
<td>0.009</td>
<td>9</td>
</tr>
<tr class="opt-minus-one">
<th>BackupWP</th>
<td>0.5M</td>
<td>0</td>
<td>0.007</td>
<td>9</td>
<td>0.5M</td>
<td>0</td>
<td>0.008</td>
<td>9</td>
</tr>
<tr class="opt-minus-two">
<th>bbPress</th>
<td>4.0M</td>
<td>0</td>
<td>0.047</td>
<td>216</td>
<td>3.8M</td>
<td>0</td>
<td>0.061</td>
<td>205</td>
</tr>
<tr>
<th>Better WordPress Google<br />
XML Sitemaps</th>
<td>0.6M</td>
<td>2</td>
<td>0.010</td>
<td>12</td>
<td>0.7M</td>
<td>2</td>
<td>0.013</td>
<td>12</td>
</tr>
<tr class="opt-zero">
<th>Contact Form 7</th>
<td>0.5M</td>
<td>0</td>
<td>0.007</td>
<td>16</td>
<td>0.4M</td>
<td>0</td>
<td>0.008</td>
<td>16</td>
</tr>
<tr>
<th>Dev4Press Updater</th>
<td>0.3M</td>
<td>2</td>
<td>0.007</td>
<td>5</td>
<td>0.3M</td>
<td>2</td>
<td>0.010</td>
<td>5</td>
</tr>
<tr class="opt-minus-one">
<th>Events Manager</th>
<td>4.2M</td>
<td>1</td>
<td>0.051</td>
<td>60</td>
<td>3.0M</td>
<td>1</td>
<td>0.042</td>
<td>54</td>
</tr>
<tr class="opt-minus-one">
<th>gdHeadSpace 4</th>
<td>0.7M</td>
<td>1</td>
<td>0.013</td>
<td>20</td>
<td>0.7M</td>
<td>1</td>
<td>0.013</td>
<td>8</td>
</tr>
<tr class="opt-plus-two">
<th>GD Affiliate Center Pro</th>
<td>1.1M</td>
<td>0</td>
<td>0.017</td>
<td>16</td>
<td>0.7M</td>
<td>0</td>
<td>0.013</td>
<td>9</td>
</tr>
<tr>
<th>GD bbPress Attachments</th>
<td>0.2M</td>
<td>0</td>
<td>0.003</td>
<td>1</td>
<td>0.2M</td>
<td>0</td>
<td>0.004</td>
<td>1</td>
</tr>
<tr>
<th>GD Pages Navigator</th>
<td>0.5M</td>
<td>0</td>
<td>0.008</td>
<td>3</td>
<td>0.5M</td>
<td>0</td>
<td>0.009</td>
<td>3</td>
</tr>
<tr class="opt-plus-two">
<th>GD Press Tools Pro</th>
<td>2.9M</td>
<td>0</td>
<td>0.032</td>
<td>78</td>
<td>2M</td>
<td>0</td>
<td>0.027</td>
<td>38</td>
</tr>
<tr class="opt-minus-one">
<th>GD Products Center Pro</th>
<td>2.4M</td>
<td>0</td>
<td>0.029</td>
<td>28</td>
<td>2.2M</td>
<td>0</td>
<td>0.032</td>
<td>17</td>
</tr>
<tr class="opt-minus-two">
<th>GD Star Rating</th>
<td>3.8M</td>
<td>0</td>
<td>0.043</td>
<td>12</td>
<td>3.8M</td>
<td>0</td>
<td>0.047</td>
<td>14</td>
</tr>
<tr class="opt-plus-two">
<th>GD Custom Posts And<br />
Taxonomies Tools Pro</th>
<td>2.8M</td>
<td>0</td>
<td>0.039</td>
<td>61</td>
<td>1.7M</td>
<td>0</td>
<td>0.027</td>
<td>23</td>
</tr>
<tr class="opt-minus-one">
<th>GD Unit Converter</th>
<td>0.5M</td>
<td>0</td>
<td>0.007</td>
<td>4</td>
<td>0.4M</td>
<td>0</td>
<td>0.010</td>
<td>4</td>
</tr>
<tr class="opt-minus-one">
<th>GravityForms</th>
<td>2.9M</td>
<td>0</td>
<td>0.025</td>
<td>4</td>
<td>2.8M</td>
<td>0</td>
<td>0.030</td>
<td>4</td>
</tr>
<tr>
<th>JetPack</th>
<td>0.7M</td>
<td>0</td>
<td>0.008</td>
<td>5</td>
<td>0.7M</td>
<td>0</td>
<td>0.009</td>
<td>5</td>
</tr>
<tr>
<th>Lightbox Plus</th>
<td>0.7M</td>
<td>0</td>
<td>0.011</td>
<td>8</td>
<td>0.7M</td>
<td>0</td>
<td>0.013</td>
<td>7</td>
</tr>
<tr>
<th>Regenerate Thumbnails</th>
<td>0.1M</td>
<td>0</td>
<td>0.002</td>
<td>1</td>
<td>0.1M</td>
<td>0</td>
<td>0.002</td>
<td>1</td>
</tr>
<tr class="opt-minus-two">
<th>Subscribe2</th>
<td>1.4M</td>
<td>0</td>
<td>0.013</td>
<td>5</td>
<td>1.4M</td>
<td>0</td>
<td>0.016</td>
<td>5</td>
</tr>
<tr>
<th>Subscribe to Comments Reloaded</th>
<td>0.3M</td>
<td>2</td>
<td>0.005</td>
<td>17</td>
<td>0.3M</td>
<td>2</td>
<td>0.006</td>
<td>3</td>
</tr>
<tr>
<th>SyntaxHighlighter Evolved</th>
<td>0.3M</td>
<td>0</td>
<td>0.004</td>
<td>1</td>
<td>0.3M</td>
<td>0</td>
<td>0.005</td>
<td>1</td>
</tr>
<tr class="opt-minus-two">
<th>The Google+ plugin</th>
<td>1.6M</td>
<td>1</td>
<td>0.032</td>
<td>10</td>
<td>1.6M</td>
<td>1</td>
<td>0.032</td>
<td>6</td>
</tr>
<tr>
<th>TinyMCE Advanced</th>
<td>0.1M</td>
<td>0</td>
<td>0.002</td>
<td>13</td>
<td>0.1M</td>
<td>0</td>
<td>0.002</td>
<td>13</td>
</tr>
<tr class="opt-plus-two">
<th>W3 Total Cache</th>
<td>1.4M</td>
<td>0</td>
<td>0.019</td>
<td>46</td>
<td>0.2M</td>
<td>0</td>
<td>0.008</td>
<td>19</td>
</tr>
<tr class="opt-minus-two">
<th>WooCommerce</th>
<td>3.9M</td>
<td>0</td>
<td>0.056</td>
<td>164</td>
<td>3.7M</td>
<td>0</td>
<td>0.059</td>
<td>148</td>
</tr>
<tr class="opt-plus-two">
<th>WordPress Download Monitor</th>
<td>1.5M</td>
<td>1</td>
<td>0.036</td>
<td>7</td>
<td>1M</td>
<td>1</td>
<td>0.033</td>
<td>7</td>
</tr>
<tr class="opt-plus-two">
<th>WordPress SEO by Yoast</th>
<td>1.2M</td>
<td>4</td>
<td>0.018</td>
<td>21</td>
<td>0.7M</td>
<td>4</td>
<td>0.014</td>
<td>16</td>
</tr>
<tr class="opt-zero">
<th>WP e-Commerce</th>
<td>0.8M</td>
<td>1</td>
<td>0.012</td>
<td>5</td>
<td>0.9M</td>
<td>1</td>
<td>0.011</td>
<td>5</td>
</tr>
<tr class="opt-minus-two">
<th>YOURLS WordPress to Twitter</th>
<td>1.7M</td>
<td>0</td>
<td>0.022</td>
<td>60</td>
<td>1.5M</td>
<td>0</td>
<td>0.025</td>
<td>53</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Average</th>
<th>1.3M</th>
<th>0.57</th>
<th>0.020</th>
<th>28</th>
<th>1.1M</th>
<th>0.49</th>
<th>0.018</th>
<th>22</th>
</tr>
<tr>
<th>Total</th>
<th>45.9M</th>
<th>20</th>
<th>0.708</th>
<th>981</th>
<th>38.6</th>
<th>17</th>
<th>0.624</th>
<th>755</th>
</tr>
</tfoot>
</table>
<p>This data can change depending on the page used to do the testing since plugins can loading different things based on the page. But, these numbers are good reference point to see how the loading of plugins affect the WordPress. Also, you can see on average (and total) how much each plugin adds to the WordPress loading. What each row color means:</p>
<table class="d4ptable d4ppluginsbench" style="border-bottom: 1px solid #ffffff;">
<tbody>
<tr class="opt-zero">
<th style="font-weight: bold; font-size: 1.3em;" rowspan="5">Colors:</th>
<td style="width: auto;">Average optimization results</td>
</tr>
<tr class="opt-minus-two">
<td style="width: auto;">Bad optimization results, must be improved</td>
</tr>
<tr class="opt-minus-one">
<td style="width: auto;">Not good, should be improved</td>
</tr>
<tr class="opt-plus-one">
<td style="width: auto;">Good optimization, some space for improvement</td>
</tr>
<tr class="opt-plus-two">
<td style="width: auto;">Excellent optimization results</td>
</tr>
</tbody>
</table>
<p>I have mentioned the second part of loading that happens after all plugins are loaded, and WordPress runs actions and filters after that. Table below shows the difference between the WordPress with 35 plugins and WordPress with no plugins. Before plugins loader results are same for clean WordPress and WordPress with plugins.</p>
<p>Interesting thing is that you can have all 35 plugins active, and I had some WordPress setups with more than 70 active plugins. But, be ready for the WordPress using much more resources. The more plugins you have active, the more server power is needed. Plugins will have negative impact on website speed. To fix that you must use a caching plugin (W3 Total Cache for caching pages and minify the JS and CSS files) and some sort of server based optimization (eAccelerate or similar extension for PHP).</p>
<p>Clean WordPress will work with 32MB set for PHP to use. You can have less, but some internal operations might need a bit more, so 32MB is safe minimal value. If you have a couple of plugins, 32MB should be enough. If you have more than 10 plugins, at least 64MB is needed. As you can see from this test, for 35 plugins I had here, you need more, and 96MB or 128MB is safe value. Some shared hosting companies will not let you have more than 64MB or 80MB, so you might have issues with many plugins if you are on some restrictive hosting companies. Consult hosting support to make sure you will get enough resources. You can use average values above to get some orientation value for memory needed.</p>
<table class="d4ptable d4ppluginsbench">
<thead>
<tr>
<th></th>
<th colspan="4">Administration</th>
<th colspan="4">Frontend</th>
</tr>
<tr>
<th>Test</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
<th>Mem.</th>
<th>SQL</th>
<th>Time</th>
<th>Hooks</th>
</tr>
</thead>
<tbody>
<tr>
<th>Clean WP: Before plugins loader</th>
<td>13.2M</td>
<td>1</td>
<td>0.146</td>
<td>344</td>
<td>13.1M</td>
<td>1</td>
<td>0.172</td>
<td>307</td>
</tr>
<tr>
<th>Clean WP: After plugins loader</th>
<td>4.7M</td>
<td>32</td>
<td>0.236</td>
<td>137</td>
<td>1.0M</td>
<td>20</td>
<td>0.121</td>
<td>43</td>
</tr>
<tr>
<th>Clean WP: Total loading results</th>
<td>17.9M</td>
<td>32</td>
<td>0.381</td>
<td>481</td>
<td>14.1M</td>
<td>21</td>
<td>0.121</td>
<td>350</td>
</tr>
<tr>
<th>WP with plugins: After plugins loader</th>
<td>23.0M</td>
<td>235</td>
<td>1.206</td>
<td>893</td>
<td>9.7M</td>
<td>183</td>
<td>0.575</td>
<td>305</td>
</tr>
<tr>
<th>WP with plugins: Total loading results</th>
<td>81.3M</td>
<td>255</td>
<td>2.055</td>
<td>2221</td>
<td>60.2M</td>
<td>200</td>
<td>1.354</td>
<td>1364</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Total 35 Plugins Impact</th>
<th>63.4M</th>
<th>223</th>
<th>1.674</th>
<th>1740</th>
<th>46.1M</th>
<th>179</th>
<th>1.233</th>
<th>1014</th>
</tr>
</tfoot>
</table>
<h3>Optimization Analysis</h3>
<p>As you can see in the plugins table on the top, some plugins results are in different colors. Green colors are for plugins with good optimization, red colors are for plugins with bad optimization. Badly optimized plugins are always loading everything on front-end and on admin side and they take a lot of memory. Smaller plugins with less than 0.8MB of memory used are not a big problem and they usually can&#8217;t be much optimized considering number of plugin files.</p>
<p>Since most plugins are behaving different on admin side and front-end, they should be taking care of what will be loaded in both cases. Only files that are actually needed should be loaded. This is not always possible, but with little extra work, code can be separated to allow for better loading optimization. Considering how much memory some of the plugins use, it is essential to try and lower required resources. Most WordPress users are on shared hosting servers, and they need plugins that are optimized.</p>
<h4>The Bad</h4>
<p>Plugins with worst loading stats and worst optimization from this test are: bbPress, GD Star Rating, Subscribe2, The Google+ Plugin, WooCommerce and YOURLS WordPress to Twitter. bbPress should be loading parts of the plugin only when needed, considering that forum is usually separated from normal WP pages. You can have some core parts always loaded, but most things are not needed on every page. My own GD Star Rating is old plugin, and I made some optimizations in some versions, but I need to do more, and GD Star Rating 2.0 will be highly optimized to use resources. The Google+ Plugin loads many libraries that are not needed for the most part, and for a simple plugin that this should be, it uses a lot of memory. I can&#8217;t judge quality of WooCommerce plugin, but I couldn&#8217;t believe how bad loading for this plugin is, and its main file loads 32 other files always. I have noticed some other things done bad in this plugin only from first few files, but loading is really bad.</p>
<p>Few plugins are a bit better than this, and they have lighter red color: BackupWP, Events Manager, gdHeadSpace4, GD Products Center Pro, GD Unit Converter, GravityForms. BackupWP doesn&#8217;t need anything on front end but it still loads things always. Events Manager has some loading optimizations, but I see potential to make it much better. I have modded plugin into gdHeadSpace4 and I didn&#8217;t make changes in loading. This plugin doesn&#8217;t have big memory footprint, but some changes can be done. My GD Products Center Pro is still in beta, and I plan to finish loading optimization before releasing 1.0 version. Another of my plugin GD Unit Converter is 100% admin side plugin, yet some things are loaded always, and I will improve this soon. GravityForms requires a lot of things on both admin and front end side, but there are some things that can be optimized much better that they are now.</p>
<h4>The Good</h4>
<p>Contact Form 7 and WP e-Commerce could benefit from some minor changes, but they are good as far as optimization goes. Light green and good optimization is done with: Antispam Bee and BackupBuddy. BackupBuddy would benefit greatly with better main loader file that is now too big. With fragmentation of this file, will help with optimization further.</p>
<p>Best optimized plugins, considering plugin size and features are: GD Affiliate Center Pro, GD Press Tools Pro, GD Custom Posts And Taxonomies Tools Pro, W3 Total Cache, WordPress Download Monitor, WordPress SEO. My 3 Pro plugins all have advanced loaders and modular structure to load things need for admin side or front end. Even the code used for Ajax or saving data is separated and loaded only when needed. W3TC does a great job in loading of different plugin modules and same goes for WordPress SEO by Yoast has loader that loads different files on both sides, minimizing the impact on WordPress.</p>
<p>My GD Press Tools Pro and GD Custom Posts And Taxonomies Tools Pro can replace great many other plugins, and that alone can save you a lot of resources. If you can have 10 plugins and if each one uses 1.3MB on average, that is 13MB, you can replace with GD Press Tools Pro only (and it can replace much more than just 10, maybe 60 or more plugins), that will use only 2.9MB.</p>
<h3>Loading used in my plugins</h3>
<p>Process of loading for my GD Press Tools Pro plugin is controlled by main plugin file. First, it loads parts of gdr2 shared library (used by all my plugins). Public functions and classes are loaded next (they are used on both admin and front end side). Some parts of internal code are loaded next. Main plugin class is loaded after that, and this class is used to initialize the plugin and load plugin settings. Than, loader checks if its loaded on admin side. If it is, admin core class is loaded as well as some extra functions. And if the plugin is loaded to save settings or through AJAX call, it loads separate settings saving or AJAX classes. This all improves loading on front end side by some 30%. This loading method is changed over time, and I think that it works great right now.</p>
<h3>Two plugins I ALWAYS use</h3>
<p>I can&#8217;t imagine running WordPress website without my GD Press Tools Pro. It is truly ultimate administration plugin, and it does so many things that you simply need on any website: backup, sitemaps, SEO, optimization and integration&#8230; Second plugin is W3 Total Cache. Page caching, external files minify and support for CDN are something each website should use to improve website speed.</p>
<h3>Cached Pages</h3>
<p>If you use W3 Total Cache or some other similar caching plugin, and you have page cache enabled, it is important to know that when cached page is served to a visitor, WordPress (and plugins) are not loaded at all. All these tests are made when there is no page caching active.</p>
<h3>Conclusion</h3>
<p>As you can see, plugins can have big impact on WordPress. While you can have as many plugins as you like, there are things to consider:</p>
<ul>
<li><strong>Compatibility</strong>: the more plugins you have, there is more chance to have some of them causing problems. Always test plugins when adding new plugin, it is rare, but it can happen. I always have local copies of all my websites, and when new things are added, I always test locally before moving to live server.</li>
<li><strong>Resources</strong>: the more plugins you have, the more server resources will be used. If you are on the shared hosting, I recommend that you review if you really need all plugins you might have already. Test different plugins you can use, because with too many of them active, you can easily hit the limits imposed by your hosting company. My <a title="GD Press Tools Pro" href="http://www.dev4press.com/plugins/gd-press-tools/" target="_blank">GD Press Tools Pro</a> can do many things, one of them is to measure data like this, and you can see exact impact of a new plugin added on memory, mySQL server or WordPress.</li>
<li><strong>Loading Speed</strong>: more plugins == less speed. It is very important to use cache plugins to optimize front end loading, to minify external files and use CDN to load external resources.</li>
</ul>
<p>I hope that other plugin developers will consider the results from this article, and my recommendations to improve loading for own plugins to optimize them so that end users get faster plugins that are not needing too much resources. Lets make plugins even better.</p>
<script src="http://feeds.feedburner.com/~s/adsense@gdragon.info?i=http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/feed/</wfw:commentRss>
		<slash:comments>87</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk: enhanced
Content Delivery Network via cdn.dev4press.com

 Served from: www.dev4press.com @ 2013-05-19 19:15:16 by W3 Total Cache -->