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.


-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to