cpu usage way too high (?)
thomas at gstaedtner.net
Sun Feb 1 19:31:55 CET 2009
On Sun, Feb 1, 2009 at 7:00 PM, Daniel Spies <daniel.spies at fuceekay.com> wrote:
> thomasg <thomas at gstaedtner.net> wrote on Sunday 01 February 2009:
>> On Sun, Feb 1, 2009 at 4:16 PM, Nils Faerber
>> <nils.faerber at kernelconcepts.de> wrote:
>> > Daniel Spies schrieb:
>> >> Hello,
>> > Hi!
>> >> I must admit that I am not that deep into hardware. I hope someone could
>> >> explain me why things are like this. For example if I do "apt-get
>> >> update" I have 100% cpu usage until it's done. Upgrade does the same.
>> >> Recently I tried to play a .ogg file for the first time (also .mp3) and
>> >> am really confused about the cpu usage again. I tried to play it in vlc,
>> >> but this doesn't work at all. Playing in alsaplayer is nearly
>> >> impossible, the song laggs like hell. Only in mplayer (console version)
>> >> I can listen to the song. But if I do anything else, like moving a
>> >> window or opending any application, writing in xterm make the sound stop
>> >> or lag. I can see the cpu usage is at 100% all the time...
>> >> So what my problem is: I used my old 433Mhz (33Mhz more than FR) Celeron
>> >> with 128MiB (same as FR) of RAM listening to music, playing games,
>> >> downloading and much more all at the same time and didn't have such
>> >> lags. So what makes the Freerunner this unresponsive and slow when doing
>> >> easy tasks?
>> >> Thank you for enlightening me. :)
>> >> BTW: I'm using Debian with lxde from the install.sh, but with ext3 and a
>> >> 1GB (*g*) swap partition on a 8GB (Class6) SD Card (and Qi).
>> > Ah, Debian, that may explain it.
>> > With standard Debian players you will not have much fun I assume - same
>> > is probably true for MP3 BTW. What you need is a player that does not
>> > use floating point - this kills performance. What is good on an x86 CPU
>> > with explicit FPU inside the CPU is a nightmare on CPUs without FPU like
>> > the S3C (ARM). Floating point is only supported by emulation and this is
>> > slow.
>> > For this reason there are fixed point optimized versions of most codecs
>> > around, like madplay for MP3 and Tremor for Ogg.
>> > So look for a Tremor plugin/player in Debian or compile one yourself and
>> > CPU usage should go down to something like 30-50%.
>> That's also the reason why your celeron performs much better.
>> The Celeron has an FPU, so can do floating point arithmetic in
>> hardware, while the Freerunner's CPU has to emulate this in software.
>> Also you can't really compare CPUs by MHz over different
>> architectures, the CPUs are just not comparable.
>> However, you can't expect any magic, a arm9 without FPU is just plain
>> slow, nothing to do about it.
>> Also there are far more limitations not ony by the CPU, also by the
>> FR's hardware design. Especially I/O is terribly bad, so you can't
>> compare the harddrive in your Celeron machine (which probably does
>> 20-40 MB/s) with the SD card in the FR (1-4 MB/s).
> Okay, that explains the bad audio playback. I will give Madplay and Tremor a
> try. But if CPUs without FPU are that slow, why should one use them? Is this
> reducing power consumption in some way? Or are ARM CPUs simply smaller? Or
> what is the benefit of ARM over x86 CPUs with explicit FPU inside? From what I
> could read from the net, there are ARM CPUs with FPU inside available, so why
> not taking these?
> I don't use that Celeron machine any more, it's like 10 years ago, but the
> hardware specs were (except the architecture) nearly the same. That's why I
> compared them...
> I didn't think about the hard disk issue, as 1-4MB/s still seems fast enough
> for mp3/ogg playback. So I think this only affecting while facing heavy disk
> Thanks for your quick replies! :)
There is no reason to use an CPU without FPU. It's just an very old
CPU where in arm-world FPUs were optional and not wide-spread.
FPU-less CPUs perform worst for all kind of multimedia-stuff because
this is usually very floating point driven.
GTA03 will have a much more recent CPU with an integrated VFP (=arm
FPU), this will most likely multiply the performance for that kind of
ARM CPUs are much smaller, because most x86 CPUs are extremely
complex, and the main reason to use them is, that all available x86
CPUs use way to much energy to be used in any kind of handheld device.
But do not forget, that we talk about a very very old ARM CPU in case
of GTA02, modern ARM processors are much more powerful. The basic
architecture of GTA02s CPU is almost as old as your celeron (the
actual implementation is of course not that old, but in ARM land it
takes more time from the design to an actual product, also the
lifecycle is usually much longer).
More information about the hardware