On 06/23/2015 01:04 PM, John Johansen wrote:
> On 06/22/2015 10:59 AM, John Johansen wrote:
>> This series of patches changes the way accept nodes are generated
>> and the expression tree is set-up around them. It is a start to the
>> backend refactoring and cleanup, and provides a nice little performance
>> boost in most cases because
>> 1. It reduces the number of accept nodes geneted and considered during
>> simplification/factoring, and node set building (shorter node sets
>> to construct and compare)
>> 2. It reduces the number of Alt nodes (used to combine the accept nodes)
>> to consider during simplfication, and node set building (agin shorter
>> node sets to construct and compare)
>> 3. It reduces the number of nodes that must be consider in any given
>> simplification pass, by separating out node sets that can't be
>> simplified on the right hand simplification/factoring pass.
>>
>> The performance change is dependent on the profile being parsed, and
>> there is no guarentee that it will be faster for all profiles. With that
>> being said, I haven't seen any performance regressions+ and some fairly
>> nice performance improvements so its worth considering before the rest
>> of the backend factoring is done.
>>
>> Eg. Using a few example profile tests from a local machine, comparing
>> against the 2.9 parser in Ubuntu 14.10 against current 2.10 with
>> these patches*
>>
>> profile with tree simplification -O no-expr-simplify
>> ------- ----------------------- -------------------
>> evince 22% faster 10% faster
>> firefox 40% faster 11% faster
>> chromium 32% faster 11% faster
>> cupsd 35% faster 3% faster
>> dnsmasq 12% faster 17% faster
>> dhclient 36% faster 5% faster
>> klogd 0% 8% faster
>>
>
> Adding some stats for arm-hf (bq 4.5)
>
> Times are a cummulative user value for 5 consecutive runs of the parser
> against a given profile.
>
>
> 2.10+patch no simple no simple/2.10 2.9.1
> no simple no simple/2.9 2.10/2.9 2.10 no s/2.9 no s
> chromium 34.07 35.75 104.93% 63.68
> 39.17 61.51% 86.98% 91.27%
> cupsd 6.58 4.09 62.16% 11.97
> 4.22 35.25% 155.92% 96.92%
> dhclient 4.98 3.3 66.27% 9.39
> 3.56 37.91% 139.89% 92.70%
> dnsmasq 2.35 1.38 58.72%
> 3.74 1.47 39.30% 159.86% 93.88%
> evince 79.85 239.55 300.00%
> 122.25 266.78 218.22% 29.93% 89.79%
> firefox 33.64 35.02 104.10%
> 63.78 38.14 59.80% 88.20% 91.82%
> klogd 0.78 0.53 67.95% 1.6
> 0.63 39.38% 123.81% 84.13%
> Ubuntu-core-default 2.21 1.33 60.18% 4.99
> 1.49 29.86% 148.32% 89.26%
> Ubuntu-personal-qml-app 11.08 6.3 56.86%
> 21.97 6.33 28.81% 175.04% 99.53%
> Ubuntu-personal-webapp 17.8 11.8 66.29%
> 34.41 11.74 34.12% 151.62% 100.51%
>
>
> So the case for arm-hf is different, for the simplification case the majority
> of cases regress but evince sees huge improvements. For the no simplification
> case we see slight performance improvements, and only one minor regression.
>
So there is a correction, in my rush to get this out I messed up the
2.10/2.9 formula so its values are wrong. The corrected table is
patch no-sim no-s/patc 2.9.1 2.9 no- no-s/2.9
patc/2.9 p no-s/2.9 no-s
chromium 34.07 35.75 104.93% 63.68 39.17 61.51% 53.50%
91.27%
cupsd 6.58 4.09 62.16% 11.97 4.22 35.25% 54.97%
96.92%
dhclient 4.98 3.3 66.27% 9.39 3.56 37.91% 53.04%
92.70%
dnsmasq 2.35 1.38 58.72% 3.74 1.47 39.30% 62.83%
93.88%
evince 79.85 239.55 300.00% 122.25 266.78 218.22% 65.32%
89.79%
firefox 33.64 35.02 104.10% 63.78 38.14 59.80% 52.74%
91.82%
klogd 0.78 0.53 67.95% 1.6 0.63 39.38% 48.75%
84.13%
Ubuntu-core-default 2.21 1.33 60.18% 4.99 1.49 29.86% 44.29%
89.26%
Ubuntu-personal-qml-app 11.08 6.3 56.86% 21.97 6.33 28.81% 50.43%
99.53%
Ubuntu-personal-webapp 17.8 11.8 66.29% 34.41 11.74 34.12% 51.73%
100.51%
So in fact the patch set provides a significant boost (patc/2.9 column)
on arm-hf (bq 4.5), for regular compiles and and a small boost
(p no-s/2.9 no-s column) for -O no-expr-simplify. The use of
-O no-expr-simplify for smaller profiles is still faster on on arm
(no-s/patc) at the cost of being significantly slower for some profiles
(eg. evince).
--
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/apparmor