I have been using wordpress for years, too long. And I have mostly shied away from paid solutions mostly because of the ongoing cost. I certainly don't mind it in relation to support agreements, where you only lose support, yet you still get updates for life (I personally believe that should be the model used generally, mostly to encourage plugins to be continually updated).
But I've come to a project where I'm finding I have installed not just a large number of plugins, but a number of paid solutions and began wondering:
What is the impact of licensing on performance?
How often do the plugins "phone-home" or the "licensing police"?
Given that a page is served to a user and that page could be shown using 5, 10, 20+ plugins, (let's say for argument sake, and) six of those plugins are licensed, as dozens of classes are instantiated for each view, content, post, whatever, are the licenses checked at that point or is it only checked when there's a user in the backend viewing the relevant plugin settings page or tries an update or similar?
I realise this is subjective and each plugin license method could mean the license is checked at anytime the programmer deemed fit, but given some of the major players out there with the biggest plugin base, what would generally be the timing of checking those licenses?
I'm figuring it couldn't be done on front end viewing, that would be way too onerous. I don't even think it would be on each and every backend page either.
My gut feeling is they would be checked/could be checked:
- in a cron run when checking for updates
- when attempting to update a particular plugin
- when viewing any page displaying the license particulars
The only time I figured a license would/could be checked via the front end is if the page load requires an external resource, then that resource would possibly/probably have a validity check on the requesting IP or domain, or even the passing of credentials to perform the service.
As my mind started thinking about this I was just beginning to wonder about the impact that these requests could take and how often they're performed.
I was thinking of trying to run a real world test and disable all the licensed plugins, but then the page display would be completely different (and somewhat broken) and so load times in this sense couldn't be used as a test of measure.
I've been working on a WordPress REST API problem and I've been amazed at the number of timeouts I'm getting which lead me down this rabbit hole of "how long would it take?"