diff options
author | Marcus Müller <mueller@kit.edu> | 2018-02-20 11:22:14 +0100 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2018-02-23 19:06:50 +0100 |
commit | 97f0d1cecf4a8cb82e8e16e4dfcac0589c5b56c7 (patch) | |
tree | e0ad2aba49c4ebcb8a8bbf9f6b65bc8a953c95e0 /gr-blocks/lib/probe_rate_impl.cc | |
parent | 2fc414578985b59c5bfbb15103f3c3677a1c6fdc (diff) |
blocks: remove unnecessary call to pmt::intern at runtime
typical usage:
message_port_pub(pmt::mp("out_port"), …)
which is bad, as it implies hashing of a string, allocation of memory,
deallocation, finding the hashed string in the table of interned strings
and returning a unique pointer (which for reasons of PMT awesomeness
isn't even unique) to the interned port name.
Replacing all these port name ad hoc ::mp() calls by reusing one,
private, port name member.
Diffstat (limited to 'gr-blocks/lib/probe_rate_impl.cc')
-rw-r--r-- | gr-blocks/lib/probe_rate_impl.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gr-blocks/lib/probe_rate_impl.cc b/gr-blocks/lib/probe_rate_impl.cc index 015b157d39..898c20c515 100644 --- a/gr-blocks/lib/probe_rate_impl.cc +++ b/gr-blocks/lib/probe_rate_impl.cc @@ -46,9 +46,12 @@ namespace gr { d_avg(0), d_min_update_time(update_rate_ms), d_lastthru(0), - d_itemsize(itemsize) + d_itemsize(itemsize), + d_port(pmt::mp("rate")), + d_dict_avg(pmt::mp("rate_avg")), + d_dict_now(pmt::mp("rate_now")) { - message_port_register_out(pmt::mp("rate")); + message_port_register_out(d_port); } probe_rate_impl::~probe_rate_impl(){} @@ -70,9 +73,9 @@ namespace gr { d_avg = rate_this_update*d_alpha + d_avg*d_beta; } pmt::pmt_t d = pmt::make_dict(); - d = pmt::dict_add(d, pmt::mp("rate_avg"), pmt::mp(d_avg)); - d = pmt::dict_add(d, pmt::mp("rate_now"), pmt::mp(rate_this_update)); - message_port_pub(pmt::mp("rate"), pmt::cons(d, pmt::PMT_NIL)); + d = pmt::dict_add(d, d_dict_avg, pmt::mp(d_avg)); + d = pmt::dict_add(d, d_dict_now, pmt::mp(rate_this_update)); + message_port_pub(d_port, pmt::cons(d, pmt::PMT_NIL)); } return noutput_items; } |