11

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.

1
  • Ian, did any of the answers help you? If yes, please mark the answer correct by clicking on the checkmark to the left of the answer.
    – Anna_MediaGirl
    Dec 22, 2012 at 6:18

3 Answers 3

11

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 :)

2
  • 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.
    – Ian Pitts
    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.
    – Ian Pitts
    Dec 6, 2012 at 14:35
11

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.

4

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.

https://www.pingdom.com/

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.

1
  • 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.
    – Ian Pitts
    Dec 6, 2012 at 18:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.