On 1/8/21 4:04 pm, rupert THURNER wrote:
> you triggered me reading more about it though. the commit comment
> states it takes 30% less instructions:
> Measuring instruction count per iteration with perf stat, averaged over
> 10M iterations, PS1. Test case:
> Html::openElement('a', [ 'class' => [ 'foo', 'bar' ] ] )
>
> * Baseline: 11160.7265433
> * in_array(): 10390.3837233
> * dropDefaults() changes: 9674.1248824
> * expandAttributes() misc: 9248.1947500
> * implode/explode and space check: 8318.9800417
> * Sanitizer inline: 8021.7371794
>
> does this mean these changes bring 30% speed improvement? that is
> incredible!
Well, 30% reduction in instruction count. Time reduction is about 25%,
although you can take the reciprocal of that (1/0.75) and call it 34%
speed improvement.
I used instruction count rather than time because you can get 4-5
significant figures of accuracy, i.e. the first 4-5 digits stay the
same between runs, despite background activity, so you can measure
small changes very accurately.
> how often is this part called to retrieve one article?
Errr... let's just say there's no need to name a second day after me.
It's a small change.
The broader context is T284274
<https://phabricator.wikimedia.org/T284274>-- I'm trying to make sure
you can view the history page with limit=5000 without seeing a
timeout. My change to Thanks probably cut render time for big history
pages by 50% -- that's how much the 95th and 99th percentile service
times dropped by. Html::openElement() is a smaller piece of a smaller
piece of the puzzle.
-- Tim Starling
_______________________________________________
Wikitech-l mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/