Measuring execution rate


Can anyone tell me if there is a way I can measure the rate at which a
graph is executing when it contains no rate limited blocks?

My motivation for doing this is that I wish to benchmark a signal
processing chain so that I can estimate the maximum bandwidth I can
to process with my PC hardware when I eventually use a USRP. Assume
the USRP is not currently available for my use.

Many thanks,


On Tue, Nov 6, 2012 at 9:33 AM, Ben G. [email protected] wrote:

Many thanks,


Hi Ben,

This is a really hard question. I’ve done various ways of benchmarking
and measuring code execution, and me and a handful of others have a
developing interest in these things. Eventually, we’d like to
instrument some code into GNU Radio blocks or the scheduler to keep
track of statistics for this. But as I said, it’s a hard question to
answer and to do properly, which is why we don’t really have anything.

Now that I’ve said it’s a difficult question, we’ll probably get a few
“all you have to do is…” answers. Measuring timing and execution has
a long history and a lot of debate to it.

Anyway, having said that, a simple test is to to just create the most
basic flowgraph (null source → head → your block → null sink) and
run it using ‘time ./’. You can run it a number of times and
take either the average or the minimum. Most people will tell you that
the minimum is probably the best value to take since this represents
the time taken with the least amount of system interruption of your

Hope this helps,