Opened 2 years ago

Closed 2 years ago

#16684 closed enhancement (fixed)

PHP5 Performance improvement for wptexturize

Reported by: solarissmoke Owned by:
Priority: normal Milestone: 3.2
Component: Performance Version: 3.1
Severity: normal Keywords: php5 has-patch
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 2 years ago.
16684.patch (3.4 KB) - added by hakre 2 years ago.
Improved version.
performance.php (1.1 KB) - added by ryan 2 years ago.
Quick microtime perfomance test

Download all attachments as: .zip

Change History (9)

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

hakre2 years ago

Improved version.

  • 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.

Version 0, edited 2 years ago by hakre (next)

comment:3   ryan2 years ago

16684.patch passes TestWPTexturize unit tests.

ryan2 years ago

Quick microtime perfomance test

comment:4   ryan2 years ago

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

comment:5   ryan2 years ago

  • Milestone changed from Awaiting Review to 3.2

comment:6   ryan2 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.