Wordpress checks for core/plugin/theme upgrades upon every hit to [almost] any admin page
|Reported by:||archon810||Owned by:|
This seems insane to me. Diagnosing performance issues, I'm digging through the code with a profiler and seeing calls to http.php, specifically WP_Http_Curl::request() function taking the longest time.
After adding a few prints into that function, I found that the Wordpress API is getting called upon every single page load, for example the Comments page, Posts, Settings, etc.
Here are the calls, with duration added at the end.
http://api.wordpress.org/core/version-check/1.3/?version=2.8.4&php=5.2.9&locale=en_US&mysql=5.0.67&local_package= 0.13813519477844s http://api.wordpress.org/plugins/update-check/1.0/ 0.58831095695496s http://api.wordpress.org/themes/update-check/1.0/ 0.34422087669373s http://api.wordpress.org/core/version-check/1.3/?version=2.8.4&php=5.2.9&locale=en_US&mysql=5.0.67&local_package= 0.13466596603394s http://api.wordpress.org/plugins/update-check/1.0/ 0.5711510181427s http://api.wordpress.org/themes/update-check/1.0/ 0.35010981559753s http://api.wordpress.org/core/version-check/1.3/?version=2.8.4&php=5.2.9&locale=en_US&mysql=5.0.67&local_package= 0.1392650604248s http://api.wordpress.org/plugins/update-check/1.0/ 0.57304692268372s http://api.wordpress.org/themes/update-check/1.0/ 0.41575598716736s
The crazy part here is that these 3 updates take over a second and are done EVERY SINGLE TIME, without any kind of rate limiting. I understand if they were done at most once an hour or only when the Plugins or Themes pages were hit, respectively but this is a huge overkill and performance monster.
Additionally, I don't understand why Wordpress.com would want that many more hits to the API - I'm sure somebody on the WP.com team had to have noticed this before.
The only relevant ticket I found is #8590.
The fix should be rate-limiting, IMO. Thoughts please.
Change History (23)
6 years ago
- Severity changed from normal to major
- Version changed from 2.8.4 to 2.8.5
- Keywords reporter-feedback removed
- Milestone Unassigned deleted
- Priority changed from high to normal
- Resolution set to invalid
- Severity changed from major to normal
- Status changed from new to closed