Hi Marcus,
Thanks a lot for your answer! So now having confirmed this,
comes the real question :)
I am trying to improve the performance of a flowgraph. My
performance "metric" is the rate at which a file in my
filestystem grows, since my flowgraph starts with a file
source and ends with a file sink. This means that after doing
some processing, the flowgraph outputs the result to a file,
so if the file grows faster, then the flowgraph is executing
faster and i achieve a faster transfer rate, even if i then
change the file sink for another sink (i.e. usrp).
The transfer rate is very important to me, because im
evaluating the performance of the flowgraph compared to the
implementation that already exists in hardware, which i know
exactly the capable transfer rate.
So after using the performance monitor and detecting some
blocks that do a lot of processing, ive optimized those
blocks.
However i noticed that after the optimization, the sum of
all blocks percentage of processing time is not 100%, this is
when i started evaluating the possibility that gnu radio
scheduler or gnuradio framework or the relationship between
blocks is what is preventing me to achieved my desired rate,
and it is not each block processing time anymore.
However, i do not have an easy way to determine the "amount
of time a block has been blocked because another block in the
downstream has not read the input buffer fast enough for the
first block to be able to write on the buffer".
It is also not as simple as connecting a file sink in an
intermediate point in the flowgraph delete the rest of the
blocks, and measure the transfer rate against this new file
sink. This is because in my flowgraph interpolation and
decimation occurs at different blocks, resulting in making the
file size an unrealiable metric in these cases.
In the only case this is valid, is at the very end of the
flowgraph, when the data has been restored to its original
content, and therefore, any output by from the final block
corresponds to an input byte.
I hope i expressed myself correctly. Do you have any tip on
how to figure out why my flowgraph at a determine rate? Should
the time a flowgraph executes be always the same to the sum of
the time all blocks consume?