The performance impact will depend on the plugins themselves. But there are many aspects to factor.
Where might plugins have a performance impact?
Both cases can’t be tweaked to perform better, so having something that would give a better performance, in that case, should be prioritized.
The back-end and background processes
For the matter, it’s all about:
How efficient/complex the logic/tasks are required for the plugin to do its job?
Auditing the plugin’s function, requests, and database interaction will give more insights.
We are looking for bottlenecks and how they can be improved and fixed.
Using Object Cache generally helps as well.
How fitting are the server configuration and resources requirements’ are?
Auditing the server load while the plugins execute their methods and functions will give more insights.
Auditing the server’s errors will give more insights into when limits are hit (execution time, memory more particularly).
Depending on the execution requirements, the following might help:
- Adding more CPUs to allow the execution of more tasks at once
- Increasing the CPU frequency will reduce the time required by computing-intensive tasks to run faster
- Increasing RAM will help scripts and processes that require temporary store data as part of their processing
How about the collective performance of plugins?
A common misconception is that the fewer plugins you have, the better the performance will be.
One of the main argument is that disabling a plugin will reduce the server’s load, page generation speed, or others.
What’s missing in this comparison is replacing the plugin with a custom code that does the same thing. Otherwise, there won’t be any comparison basis.
When multiple plugins are used, it’s about the server’s ability to process their requests efficiently. That logic won’t change if the plugin is replaced by custom development.
Getting the correct server type and size is critical at this level.
Does custom development provide better results?
Advantages of custom development
The main advantage of custom development is that only the code required for whatever is needed will be used.
There is a subtle detail that might be overlooked.
We are comparing a developer(s) yet to understand the problem to solve, experiment and find a solution for it, debug, fix conflicts, and identify and improve bottlenecks.
Developer(s) (the plugin’s) who already did the above, getting feedback from customers using the plugin, which helps find bugs and conflicts faster, and has a better understanding of the issue, its challenges, what didn’t work to solve it, and what is required to improve going forward.
Getting to the same level, feartures/performance, starting from scratch is not impossible, but it will require time and effort to get there before even thinking about getting a better performance out of it.
Disadvantages of custom development
There are mainly three:
As mentioned before, to get at least the same level of feature/performance compared to the plugin to be replaced by custom development will need time.
And there is a lot to factor in on the budget side:
- How many coding hours will get the same result as any of the plugins to dismiss, even if we restrict the features to only the ones you need from the plugin?
- What will it cost to build an interface and documentation if the plugin is meant to be used by the customer?
- What will it cost to periodically maintain it and fix bugs and conflicts?
- What will it cost to do research and experiment with improvements in the hope of getting better performance out of it?
The cost of a plugin won’t cover a couple of hours in that journey.
Reducing the plugin count is ideal, but in practice, you will have to pick between developing your own features or sticking with a plugin for it.
If budget is a limit, getting quality plugins is far better than venturing into the custom developments road.