[wp-trac] [WordPress Trac] #5325: sanitize_post and
sanitize_post_field are very expensive no-ops
WordPress Trac
wp-trac at lists.automattic.com
Wed Nov 7 03:54:05 GMT 2007
#5325: sanitize_post and sanitize_post_field are very expensive no-ops
--------------------------+-------------------------------------------------
Reporter: Quandary | Owner: anonymous
Type: defect | Status: new
Priority: normal | Milestone: 2.3.2
Component: Optimization | Version: 2.3.1
Severity: major | Keywords:
--------------------------+-------------------------------------------------
Simple, commonly-called template functions (the_title, get_permalink,
etc.) are all channeled through the get_post function. While get_post
implements caching, it caches content before it's been filtered, ''not''
after. This means that sanitize_post is called for each and every call to
get_post.
I loaded a test page 5 times in a test configuration that had 86 calls to
get_post (mostly via get_the_title and get_permalink). Instrumentation
results from APD indicate that fully 8-15% (~9.5% avg.) of the page
generation time was spent in sanitize_post and sanitize_post_field, even
though nearly all of the calls were for "raw" data, and no filtering was
actually taking place. I added a simple early bail-out to bypass the no-op
actions, and this reduced the hit to .1-.2% across another 5 page loads
(no, that's not a typo ;).
I'm attaching a patch to fix this bug, but this is only the immediate
problem (get_post appears to be called with "raw" ''way'' more frequently
then with "display"). Opening another bug on the filtering implementation
''may'' be warranted.
--
Ticket URL: <http://trac.wordpress.org/ticket/5325>
WordPress Trac <http://trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list