# Performance drop with upgrade to 3.7

**URL:** <https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009>\
**Category:** GNU Radio\
**Created:** [March 24, 2014, 3:18pm UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009 "2014-03-24T15:18:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [March 24, 2014, 3:18pm UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/1 "2014-03-24T15:18:40Z")

</div>

Hi - I just upgraded to 3.7.3 using the build-gnuradio script from  
3.6.5.1.  
I am using it to run a C++ App that captures all the radio  
communications  
on a Moto SmartNet system. I upgraded all my code to work with the 3.7  
naming scheme and got everything to compile and run. Everything runs in  
3.7, but I am seeing a lot more CPU usage, almost a whole additional  
core.

Are there an obvious things I should check where blocks changed  
significantly from 3.6 to 3.7?

The main code is here:

> **[GitHub - robotastic/smartnet-recorder at 3.7](https://github.com/robotastic/smartnet-recorder/tree/3.7)**
>
> 3.7

And the codec is here:

> **[GitHub - robotastic/gr-dsd at 3.7](https://github.com/robotastic/gr-dsd/tree/3.7)**
>
> 3.7

I put together the general flow graph below. Are there any blocks where  
I  
could be shooting myself in the foot? Is it better to do xlating or  
sig\_source & multiply\_cc? The source bandwidth is 5MHz.

_Decode Control Channel:_ [  
[https://github.com/robotastic/smartnet-recorder/blob/3.7/smartnet.cc](https://github.com/robotastic/smartnet-recorder/blob/3.7/smartnet.cc) ]  
multiply\_cc ( OsmoSDR(HackRF) + analog::sig\_source\_c )  
gr::filter::fir\_filter\_ccf  
gr::digital::fll\_band\_edge\_cc  
gr::analog::pll\_freqdet\_cf  
gr::digital::clock\_recovery\_mm\_ff  
gr::digital::binary\_slicer\_fb  
gr::digital::correlate\_access\_code\_tag\_bb  
smartnet\_deinterleave  
smartnet\_crc

_Decode digital voice channel:_ [  
[https://github.com/robotastic/smartnet-recorder/blob/3.7/logging\_receiver\_dsd.cc](https://github.com/robotastic/smartnet-recorder/blob/3.7/logging_receiver_dsd.cc)]  
tb-\>connect( OsmoSDR(HackRF) )  
gr::filter::freq\_xlating\_fir\_filter\_ccf  
gr::filter::rational\_resampler\_base\_ccf  
gr::analog::quadrature\_demod\_cf  
gr::filter::fir\_filter\_fff  
dsd\_make\_block\_ff [  
[https://github.com/robotastic/gr-dsd/blob/3.7/lib/dsd\_block\_ff.cc](https://github.com/robotastic/gr-dsd/blob/3.7/lib/dsd_block_ff.cc) ]  
gr::blocks::wavfile\_sink

---

<div class="post-metadata">

**Author:** ![hagus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/9de053/32.png) [@hagus](https://www.ruby-forum.com/u/hagus)\
**Post date:** [March 24, 2014, 4:37pm UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/2 "2014-03-24T16:37:41Z")

</div>

On Mon, Mar 24, 2014 at 7:17 AM, Luke B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> [GitHub - robotastic/smartnet-recorder at 3.7 · GitHub](https://github.com/robotastic/smartnet-recorder/tree/3.7)  
> multiply\_cc ( OsmoSDR(HackRF) + analog::sig\_source\_c )  
> [smartnet-recorder/logging\_receiver\_dsd.cc at 3.7 · robotastic/smartnet-recorder · GitHub](https://github.com/robotastic/smartnet-recorder/blob/3.7/logging_receiver_dsd.cc)

What processor and OS are you running on? I suggest you start by  
profiling your flowgraphs with something like oprofile/perf or control  
port. Profiling with 3.7 is the first step and may be all that’s  
necessary if something really stands out, otherwise comparing results  
of 3.6.5.1 and 3.7 would be good.

I’d be interested in seeing your results.

Nathan

---

<div class="post-metadata">

**Author:** ![hagus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/9de053/32.png) [@hagus](https://www.ruby-forum.com/u/hagus)\
**Post date:** [March 25, 2014, 10:35pm UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/3 "2014-03-25T22:35:25Z")

</div>

Thanks - I am running an quad-core Intel I5 laptop. It is running Ubuntu  
13.10. I also have it running on a VM on my 8 Core I7 Macbook.

Do you have any pointers or links on using oprofile with gnuradio? I  
found  
some material on using GR Performance Counters, but I haven’t had a  
chance  
to try.

I am going to working on learning how to profile using the VM. In the  
meantime, I rolled back the bare metal machine so I can keep my site up.

I installed 3.7 using the build-gnuradio script. When I reinstalled  
3.6.5,  
also using build-gnuradio, the performance was still high. I am  
wondering  
if it actually has something to do with libraries being upgraded. I know  
the script upgraded me from Boost 1.49 to 1.53. Are there some other  
libraries that could have a perf impact? ITPP?

On Mon, Mar 24, 2014 at 11:35 AM, West, Nathan

---

<div class="post-metadata">

**Author:** ![hagus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/9de053/32.png) [@hagus](https://www.ruby-forum.com/u/hagus)\
**Post date:** [March 27, 2014, 10:49am UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/4 "2014-03-27T10:49:01Z")

</div>

* * *

Discuss-gnuradio mailing list  
removed\_email\_address@domain.invalid  
[https://lists.gnu.org/mailman/listinfo/discuss-gnuradio](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

---

<div class="post-metadata">

**Author:** ![hagus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/9de053/32.png) [@hagus](https://www.ruby-forum.com/u/hagus)\
**Post date:** [March 27, 2014, 10:56am UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/5 "2014-03-27T10:56:40Z")

</div>

Thanks Guys! I am rebuilding with Debug turned on and I also enabled  
Control Ports in the compile. Hopefully this should help highlight the  
major CPU hogs.

Marcus - build-gnuradio is an awesome script. Thank you so much for the  
time you put into keeping it current. It is the only reliable way I have  
found to install GnuRadio on Ubuntu 13.10.

- Luke

---

<div class="post-metadata">

**Author:** ![hagus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/9de053/32.png) [@hagus](https://www.ruby-forum.com/u/hagus)\
**Post date:** [March 26, 2014, 5:40pm UTC](https://www.ruby-forum.com/t/performance-drop-with-upgrade-to-3-7/240009/6 "2014-03-26T17:40:35Z")

</div>

On Tue, Mar 25, 2014 at 2:27 PM, Luke B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I installed 3.7 using the build-gnuradio script. When I reinstalled 3.6.5,  
> also using build-gnuradio, the performance was still high. I am wondering if  
> it actually has something to do with libraries being upgraded. I know the  
> script upgraded me from Boost 1.49 to 1.53. Are there some other libraries  
> that could have a perf impact? ITPP?

I’m not sure what release type build-gnuradio is using, but you want  
to do a build that preserves symbols. After that the easiest way I  
know of to get a quick glance at what’s causing performance issues is  
to run ‘perf top’. Just run your flowgraph then start up perf top and  
whatever is hogging CPU will rise to the top of the list

Nathan
