[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] GSoC - Optimizing the IO Pipeline for AV Data Update

From: John Gilmore
Subject: Re: [Gnash-dev] GSoC - Optimizing the IO Pipeline for AV Data Update
Date: Thu, 07 Apr 2011 03:54:22 -0700

> This project is about optimizing the playback of audio and video (AV) in
> Gnash. In particular, I will change AudioDecoder to a more efficient
> push/pop/pull model like already implemented in VideoDecoder. I will
> also track down unneeded copy operations and memory allocations in the
> IO pipeline to further reduce CPU usage, which can be quite high.
> In the recent years, it has become popular to stream videos online
> through sites such as Youtube. Unfortunately, in my experience, Gnash
> can have a high CPU usage which leads to a lagging experience.

I suggest that you go for the 'low hanging fruit' first.

Maybe you can make a 10% or 20% difference with AudioDecoder or unneeded
malloc/memcpy's.  But you can make a 100% difference by fixing the bugs
that cause gnash to spin-lock at times, burning 100% of a cpu core when
it really has nothing at all to do.  Fixing this -- and then seeing where
else CPU gets used when gnash "should be" idle -- would eliminate the most
common complaint about gnash, which is that when you install it and
have a couple of flash-using tabs open, it can max out your CPU even when
you aren't doing anything.

In other words, fix its "idle" CPU behavior before improving the CPU
usage when it's "busy".  Most gnash instances - like ads, or website
navigation movies - spend a lot more time idle than they do rendering
video and audio.  Fixing this is less sexy but a lot more useful.
Distros will be more inclined to ship gnash if it doesn't peg their CPU
meter while doing no work.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]