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 AppArmor@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor