WordPress.org

Make WordPress Core

Opened 6 years ago

Closed 5 years ago

Last modified 2 years ago

#10853 closed enhancement (fixed)

improve get_page_hierarchy

Reported by: hailin Owned by:
Milestone: 3.0 Priority: normal
Severity: normal Version: 2.8.4
Component: Performance Keywords: needs-unit-tests
Focuses: Cc:

Description

current get_page_hierarchy has O(N*N) complexity.
It is super slow when N is a few thousands.

We should improve this to O(N) using techniques similar to #10852.

Attachments (1)

10853_page_hier.diff (1.9 KB) - added by hailin 6 years ago.
patch

Download all attachments as: .zip

Change History (10)

@hailin6 years ago

patch

comment:1 @hailin6 years ago

unit tested and verified.
The time improvement is about 500%, even with a small dataset.

comment:2 follow-up: @hailin6 years ago

We should not allow O(N*N) complexity in any of WordPress functions :-)
O(N) is what makes Google fast!

comment:3 @azaozz6 years ago

  • Resolution set to fixed
  • Status changed from new to closed

(In [11976]) Improve get_page_hierarchy, props hailin, fixes #10853

comment:4 @azaozz6 years ago

  • Component changed from General to Performance
  • Milestone changed from 2.8.5 to 2.9
  • Version set to 2.8.4

comment:5 in reply to: ↑ 2 @westi6 years ago

  • Keywords needs-unit-tests added
  • Resolution fixed deleted
  • Status changed from closed to reopened

Replying to hailin:

We should not allow O(N*N) complexity in any of WordPress functions :-)
O(N) is what makes Google fast!

Cool. Could we get these test written up as a patch for WordPress tests so we have performance and functionality tests for this code available?

comment:6 @ryan6 years ago

  • Milestone changed from 2.9 to 3.0

comment:7 @mattrude5 years ago

  • Cc m@… added

comment:8 @hakre5 years ago

  • Resolution set to fixed
  • Status changed from reopened to closed

Please create a new ticket instead of re-using this fixed one. New ticket is: #11633

Reference: (In [11976]) Improve get_page_hierarchy, props hailin, fixes #10853

comment:9 @mbijon2 years ago

  • Cc mike@… added
Note: See TracTickets for help on using tickets.