Make WordPress Core

Opened 6 years ago

Last modified 7 months ago

#43096 new enhancement

Reduce redundant calls to translate()

Reported by: superdav42's profile superdav42 Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: I18N Keywords: has-patch needs-refresh close
Focuses: performance Cc:

Description

Profiling the default WordPress install I noticed translate functions where being called 1700+ times and many times with duplicate strings. This patch uses static vars in a few key places to avoid translating the same string multiple times. Gives about a 14% reduction in page response time and a very slight memory increase. See https://blackfire.io/profiles/compare/6b2513f0-de36-400d-9e39-2349644b3d57/graph

Attachments (1)

43096.diff (20.5 KB) - added by superdav42 6 years ago.
patch

Download all attachments as: .zip

Change History (5)

@superdav42
6 years ago

patch

#2 @pento
5 years ago

  • Version trunk deleted

#3 @swissspidy
7 months ago

  • Keywords has-patch needs-refresh close added

At least for the WP_Locale class this has already been implemented in the meantime.
For the other cases I am not particularly fond of using static variables for caching. That just makes testing and debugging a bit harder and decreases readability.

#4 @SergeyBiryukov
7 months ago

Hi there, thanks for the ticket! Sorry it took so long for someone to get back to you.

As noted above, for WP_Locale this was addressed in [52956] / #54564. Other changes make sense too at a glance, but they make things less flexible for switching between locales during the request, unit testing, and might lead to an issue where post type or taxonomy labels cannot be retrieved in the correct locale after the initial call, so maybe we should look at other ways to optimize translations instead.

Last edited 7 months ago by SergeyBiryukov (previous) (diff)
Note: See TracTickets for help on using tickets.