[sugar] composite memory usage [was Re: frame auto-visibility configuration]
Sayamindu Dasgupta
sayamindu at gmail.com
Wed Sep 24 15:13:02 EDT 2008
On Thu, Sep 25, 2008 at 12:26 AM, Erik Garrison <erik at laptop.org> wrote:
> On Wed, Sep 24, 2008 at 07:51:30PM +0200, Tomeu Vizoso wrote:
>> On Wed, Sep 24, 2008 at 7:25 PM, Eduardo H. Silva <hoboprimate at gmail.com> wrote:
>> > Wow, just tried Erik's instructions for using xcompmgr, and it's
>> > amazing how swift the frame slides, and how I don't see any screen
>> > redraws. The experience is totally more fluid. Does it degrade overall
>> > performance? If not much, and if that performance degradation could be
>> > recovered in another area in Sugar (general performanfe improvements),
>> > I'd vote for this to exist in joyride and even part of future stable
>> > builds.
>>
>> AFAIK, the only tradeback (and the reason why it hasn't been activated
>> yet) is that we must pay composition with increased memory usage.
>> Composition basically saves us unnecessary redraws by keeping in
>> memory copies of the windows contents.
>>
>> Martin Dengler did back in March an excellent job quantifying this tradeback:
>>
>> http://lists.laptop.org/pipermail/sugar/2008-March/004718.html
>
> Using similar methods (ps_mem.py), I get roughly the same results.
>
> I run ps_mem.py at five places, before and after enabling composite with
> 0 to 4 activites running (Chat, Paint, Write, and Browse). (I get ten
> files named {before,after}_*_activity, and then grep them to make
> comparitive claims.)
>
>
> We can see that Activities use about the same amount of memory before
> and after the change:
>
>
> e.g. Paint:
>
> before_1_activity: 9.3 MiB + 4.2 MiB = 13.5 MiB Paint <65be2c3b
> before_2_activity: 9.2 MiB + 3.1 MiB = 12.3 MiB Paint <65be2c3b
> before_3_activity: 9.4 MiB + 2.5 MiB = 11.9 MiB Paint <65be2c3b
> before_4_activity: 9.4 MiB + 2.1 MiB = 11.5 MiB Paint <65be2c3b
>
> after_1_activity: 9.3 MiB + 4.2 MiB = 13.5 MiB Paint <eb84d7a4
> after_2_activity: 9.3 MiB + 3.1 MiB = 12.4 MiB Paint <eb84d7a4
> after_3_activity: 9.2 MiB + 2.5 MiB = 11.7 MiB Paint <eb84d7a4
> after_4_activity: 9.2 MiB + 2.1 MiB = 11.3 MiB Paint <eb84d7a4
>
>
> e.g. Write:
>
> before_3_activity: 19.4 MiB + 2.8 MiB = 22.2 MiB Write <d2756bab
> before_4_activity: 19.4 MiB + 2.4 MiB = 21.8 MiB Write <d2756bab
>
> after_3_activity: 19.4 MiB + 2.8 MiB = 22.2 MiB Write <d863e164
> after_4_activity: 19.4 MiB + 2.4 MiB = 21.8 MiB Write <d863e164
>
>
> However, there is an obvious memory difference between the two
> situations:
>
> [ total memory usage ]
>
> before_0_activity- 86.4 MiB
> before_1_activity- 98.0 MiB
> before_2_activity- 126.6 MiB
> before_3_activity- 146.2 MiB
> before_4_activity- 154.9 MiB
>
> after_0_activity- 88.5 MiB
> after_1_activity- 109.8 MiB
> after_2_activity- 138.0 MiB
> after_3_activity- 162.7 MiB
> after_4_activity- 173.2 MiB
>
> When composition is enabled, we used 18.3 MiB more to run the same 4
> activities.
>
>
> Following Martin Dengler's lead, we discover that this memory is mostly
> used by the X server:
>
> bash-3.2# grep Xorg before*
> before_0_activity: 3.1 MiB + 390.5 KiB = 3.5 MiB Xorg
> before_1_activity: 3.2 MiB + 430.0 KiB = 3.6 MiB Xorg
> before_2_activity: 3.4 MiB + 420.0 KiB = 3.9 MiB Xorg
> before_3_activity: 3.7 MiB + 509.5 KiB = 4.2 MiB Xorg
> before_4_activity: 3.7 MiB + 507.5 KiB = 4.2 MiB Xorg
>
> bash-3.2# grep Xorg after*
> after_0_activity: 3.0 MiB + 342.5 KiB = 3.3 MiB Xorg
> after_1_activity: 10.9 MiB + 445.0 KiB = 11.4 MiB Xorg
> after_2_activity: 13.1 MiB + 425.5 KiB = 13.5 MiB Xorg
> after_3_activity: 18.0 MiB + 506.0 KiB = 18.5 MiB Xorg
> after_4_activity: 19.9 MiB + 504.0 KiB = 20.4 MiB Xorg
>
> A little under 15 MiB of increase.
>
>>
>> I'd vote for activating composition ASAP once we have a 9.1 joyride
>> branch and see how we can find the sweetest spot between speed and
>> memory usage.
>>
>
> I agree.
>
> There also may be bugs which we need to shake out. If this is a feature
> we know we want for 9.1, the sooner we start testing the better.
>
FWIW, sometime back, I did some benchmarks with a composite enabled
Metacity - results at
http://www.mail-archive.com/sugar@lists.laptop.org/msg03613.html
Jim had suggested some memory saving tricks at
http://www.mail-archive.com/sugar@lists.laptop.org/msg03647.html
Thanks
Sayamindu
--
Sayamindu Dasgupta
[http://sayamindu.randomink.org/ramblings]
More information about the Sugar
mailing list