I have a tempermental layout (and client) that seems to cause many widows in my content blocks. I'm planning to make use of Low Widon't to correct this programmatically but before I do, wanted to ensure there wouldn't be a performance hit by running that plugin upwards of 30 times per pageview.
3 Answers
If I add a plugin like Widon't to nearly every content field on a page, will performance be impacted?
Short answer: Yes
The next question though: How much?
My suggestion in times like these is to implement the plugin as intended and run metrics against with and without it. Use either siege or ab in the command line to test varying loads on the page.
If you're not interested or able to run those types of tests you can use the Template Debugger and watch the time added to process the page with and without the plugin addition.
Ultimately if this is a problem that needs to be fixed, you can cache the results to mitigate performance problems. Caching isn't always the answer to a performance problem, but it has its place :)
-
Thanks... I was hoping the answer would be "minimal" but I'll have to do some testing in staging. My local machine is too fast to really tell. Dec 6, 2012 at 14:34
-
That said, if it is too slow for my liking, I'll probably look into customizing Wygwam so that it adds those non breaking spaces automatically when publishing content. Might be a big can of worms though. Dec 6, 2012 at 14:35
The more methods you call (which is what you do with a plugin or module tag) the longer it will take to process it. So, as Eric said, yes. It will affect performance when you compare it to omitting it altogether.
However, it's never as black and white as this. The amount of time a tag takes to process differs. It depends on all sorts of things. In the case of Widon't, it's just a simple string manipulation, so that hardly takes any time at all. Other plugins/modules might query the DB, and that can be a much, much bigger impact on performance, especially if no caching is applied.
But, in your case, it shouldn't matter all that much. It will be hard to tell the impact, if noticeable at all.
The short answer is that this add-on is fine.
The longer answer is that you should be regularly monitoring the performance of the site as you are building it so that you are aware of issues when the appear.
Use your template debugger and list of queries so that you can see what's going on with each page load and what might be eating up a lot of resources.
http://ellislab.com/expressionengine/user-guide/cp/admin/output_and_debugging_preferences.html
Use tools such as Pingdom to help monitor your page load speed.
Use caching where it makes sense (probably best to scan articles at this site to see what options are available for caching.)
Look through the general ExpressionEngine guide for performance.
http://ellislab.com/expressionengine/user-guide/general/caching.html
Do a general search with Google and Devot-ee to see what resources and add-ons are available for better performance.
From the above resources, you should know what is happening with your site and what tools are available to deal with problems as they appear. With this information, you should be able to answer your own questions on which add-ons may be causing problems.
You also need to have a general goal for what is acceptable for page load speeds. Different pages may have different goals (landing pages need to load as fast as possible, inner pages may be fine with slower loading speeds.)
Finally, tune your site performance to match your goals.
-
Thanks John. I definitely regularly monitor performance while developing sites it's just hard on a local system with SSD to gauge speed. Most all of my pages render in under half a second when local. Dec 6, 2012 at 18:30