WordPress.org

Make WordPress Core

Opened 3 years ago

Closed 3 years ago

#16684 closed enhancement (fixed)

PHP5 Performance improvement for wptexturize

Reported by: solarissmoke Owned by:
Milestone: 3.2 Priority: normal
Severity: normal Version: 3.1
Component: Performance Keywords: php5 has-patch
Focuses: Cc:

Description

Now that we have ditched PHP4 we can do foreach() loops passing array elements by reference. Currently in wptexturize() we make a copy of each array element from $textarr and then write to a separate $output variable. In PHP5 this is unnecessary as we can work directly on the elements of $textarr.

I'm guessing this will need unit tests but it certainly should be more efficient.

Attachments (3)

16684.diff (1.7 KB) - added by solarissmoke 3 years ago.
16684.patch (3.4 KB) - added by hakre 3 years ago.
Improved version.
performance.php (1.1 KB) - added by ryan 3 years ago.
Quick microtime perfomance test

Download all attachments as: .zip

Change History (9)

solarissmoke3 years ago

comment:1 solarissmoke3 years ago

  • Component changed from General to Performance
  • Type changed from defect (bug) to enhancement

hakre3 years ago

Improved version.

comment:2 hakre3 years ago

  • Version set to 3.1

Thanks for reporting this.

Reviewed, tested and benchmarked 16684.diff. Better performance compared to the original, looks good.

However there is more to improve as I could find out in benchmarks, even on shorter strings this is double to triple the improvement of 16684.diff.

Last edited 3 years ago by hakre (previous) (diff)

comment:3 ryan3 years ago

16684.patch passes TestWPTexturize unit tests.

ryan3 years ago

Quick microtime perfomance test

comment:4 ryan3 years ago

5000 runs with performance.php yields numbers like 10.505 seconds without the patch and 9.510 with.

comment:5 ryan3 years ago

  • Milestone changed from Awaiting Review to 3.2

comment:6 ryan3 years ago

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

(In [17636]) Performance improvements for wptexturize(). Props solarissmoke, hakre. fixes #16684

Note: See TracTickets for help on using tickets.