> This is the theory. In practice I wonder why to glue high performance C code
> with a low performance interpreted language. It does not make any sense!
It's to make it easier to build flow graphs. If GRC had to generate C code
and compile it automatically, it would be very difficult, especially on
Windows where there is no standard way of compiling programs.
They claim that gluing things together with Python incurs little speed
penalty, which could be correct if they have done it right. I haven't
investigated it, but all the Python code is doing is calling functions and
passing pointers to buffers, so I think it has minimal overhead.
You could try building a flow graph in C and compare its performance, but I am
sure it will be more difficult than using Python with GRC!
> *>>> which could explain why people complaining about poor
> >>> performance all seem to be running AMD CPUs...maybe
> >>> they're not well optimised yet.*
>
> GCC generates nice AMD code, so the problem is another one.
No, GNU Radio doesn't use GCC's optimisations. I think it uses hand-coded
assembly language, and runtime instructions to pick which routines to call
based on the CPU it is running on. If they haven't implemented support for
some AMD processors, then it will fall back to unoptimised code (i.e. it will
use normal C 'for' loops, instead of vector instructions.) See the
announcement at
http://www.trondeau.com/blog/2010/12/11/volk-vector-optimized-library-of-kernels.html
For comparison, running wbfm_mono.grc on my Intel Core2 Quad @ 2.4GHz gives me
this message in the output:
Using Volk machine: ssse3_64_orc
And it then proceeds to run with 15% CPU usage. It would be interesting to
see how other CPUs perform.
> One thing I always noticed in Linux systems is the graphical interface is
> slow. Very slow. Damnly slow!. The same graphic card under windows runs
> incredibly fast, but it's sluggy under Linux. I don't know if it is a X-Free86
> problem, or a QT problem, or anything else, but graphics in Linux used to be
> *very *slow compared to the same hardware running windows (of course there
> could be exceptions, but I have never found one)
This is always a driver issue. I can only speak for the nVidia closed source
driver as it is the only one I have used, but speed is generally not a
problem. Other drivers may not fare so well, particularly for less popular
cards. Many years ago there often were no drivers so VESA was the only
option, and that was terribly slow. But over the last few years I have heard
many complaints about buggy drivers, but none about speed. I think the
problem has generally been solved.
Cheers,
Adam.