Re: Organising an ARM performance drive?
- From: Loïc Minier <lool dooz org>
- To: mobile-devel-list gnome org
- Subject: Re: Organising an ARM performance drive?
- Date: Mon, 16 Nov 2009 08:04:28 -0600
On Wed, Nov 04, 2009, Dave Neary wrote:
> Recently during a couple of events I attended (OSiM World, the Maemo
> Summit and ELC), a number of people have signalled to me that they are
> interested in working together on a performance review of the GNOME
> stack on ARM. Others have indicated that they're concerned about
> performance of newer GNOME developments on ARM. This smells to me like
> an ideal opportunity to collaborate.
We had similar discussions around Ubuntu on ARM, wondering whether it
could perform better, if it is slower than other ARM distros etc.
> Some obvious opportunities for performance checking at the GNOME level
> are Gstreamer, Clutter, PulseAudio, GTK+, pango and perhaps even Xorg.
> Suggestions for best ways to find specific performance issues which we
> can then go about getting fixed are welcome.
So there are various things you can run, but I think it's important to
keep a goal in mind; for instance you can optimize for the speed of the
python testsuite, or for VFP performance etc., but what you really care
about is how fast the device performs this or that task, or how much
power it uses overall. Hence I think you first need to set some goals
before trying to "improve performances". For instance you might want
the device to boot or to resume in a particular time, or you might want
the list of applications to show up in a particular amount of time or
the browser to startup or load web pages in a particular time.
Once you have identified the key things you care about (e.g. video
decoding using as little CPU/power as possible, or browser startup
speed), I think the best approach is to use kernel infrastructure; I've
read about nice oprofile based research, and I think it's an excellent
first step: it allows identifying which resources are constrained and
by which ELF binaries/libs.
Then you should have a good breakdown of what the various costs come
from; it might be that pango takes too long to init, or that setting up
the X client takes too long or that there is too much I/O going on etc.
At this point you should investigate how to save time in the biggest
offenders and add debug info to them or use regular profilers against
them.
The only things this doesn't cover very well are impact of toolchain
changes; one way to cover these are archive-wide rebuilds with
different flags. I don't quite know of a better way to test things
here. For instance, what's the impact if you build everything for
Thumb2, or with hard float etc.
Bye
--
Loïc Minier
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]