Opened 12 years ago
Closed 4 years ago
#25233 closed enhancement (wontfix)
Revisions metabox improvements
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Revisions | Keywords: | needs-patch |
Focuses: | Cc: |
Description
The revisions metabox suffers from performance degradation when unlimited revisions are allowed and a large amount of revisions (e.g. 600+) is achieved on a post.
Symptoms:
- Slow wp-admin page loads
- Out of memory errors and 500 errors.
This seems to be mainly due to:
- All revisions are loaded at once when a post is loaded in wp-admin
- For each revision, the entire
$post
object is loaded, when only a few pieces of information are needed - The queries in
get_children()
are not cached
Proposed solution:
- Rewrite the revisions meta box to load the revisions via ajax instead of with the initial page load, possibly with pagination or some kind of infinite scroll.
- Only load the information required and not the entire
$post
object for each revision. - Cache the queries involved.
Possible bottlenecks:
- The
get_children()
andwp_get_post_revisions()
functions are used in a bunch of different places, so it might be difficult to bake in compatibility for everything. Might be easier to create some new functions for the metabox specifically. - Currently WordPress loads all the revsions in order to possibly upgrade them to the 3.6 versioning of revisions. It does so on every post loaded in wp-admin. It might make sense to move this to an upgrade routine or somewhere else as it adds to the performance degradation.
If this sounds like a good approach I'd be happy to work on a patch.
Change History (7)
#4
@
10 years ago
- Owner set to adamsilverstein
- Status changed from new to assigned
The plan is now to remove the revisions meta box, plugins can easily add similar functionality (see plugin linked in #25123). The revisions page itself can likely use some optimization (especially with many/large revisions. In any case, there is no reason to burden the post editing page!
Even setting the publish meta box X Revisions count (https://core.trac.wordpress.org/browser/tags/4.1/src/wp-admin/edit-form-advanced.php#L153) gets all revisions and can be costly: that should get fixed as well (i tried fields=> ids to no avail).
The version upgrade check, this call should only be loading in one revision: https://core.trac.wordpress.org/browser/tags/4.1/src/wp-admin/includes/post.php#L210
#5
@
9 years ago
Issue #34560 overlaps this one, but is about out-of-memory server errors resulting from using the edit screen on a large post with many revisions. A patch has been created there by @adamsilverstein that improves that situation, and aspects of that patch might help address this issue.
#7
@
6 years ago
Agreed... leaving closed: if this is still relevant with the new block editor, we can open a new issue to work on it.
#8
@
4 years ago
- Milestone Awaiting Review deleted
- Resolution set to wontfix
- Status changed from assigned to closed
Closing this as we are no longer working on the classic editor page in core where the reported issue occurs. Other work continues elsewhere to refine the underlying revisions API.
Please feel free to re-open if you feel I have missed something.
Related: #25123 where it's been suggested that the revisions meta box is removed altogether.