0

I am profiling my application witch uses IT++ library. I found that much of the time (50%) is being taken by this function:

_clean_type_info_names_internal().

The function is internal to MSVCR100, and is called at metric(j) = std::exp(-sqr(rx_symbols(l) - channel(l) * symbols(j))/ N0);

I tried disabling RTTI, with no luck.

Is it just an error of the profiling? Is that function part of the exp() function? Any help (or clue) will be much appreciated, even if it is only information about the function purpose itself.

Deduplicator
  • 41,806
  • 6
  • 61
  • 104
DarkZeros
  • 7,987
  • 1
  • 23
  • 35
  • It looks like maybe it's wrestling with run-time type casting. What do `rx_symbols` and `symbols` do? – Mike Dunlavey Jul 17 '13 at 12:00
  • They are just cvec classes (arrays of complex). The () operator is overloaded so it access the element in that possition. The only "real" functions are the exp() and sqr(). – DarkZeros Jul 17 '13 at 12:46
  • Well, you know, my swiss-army-knife answer to any such problem is [*this*](http://stackoverflow.com/a/378024/23771). – Mike Dunlavey Jul 17 '13 at 13:04
  • Thank you, but if I interrupt my program using the debugger I can see only the program in that line of code, but I cannot see it inside _clean_type_info_names_internal() since it is an internal function. It is only shown on the profiler. Any way to see that function on the debugger side? – DarkZeros Jul 17 '13 at 13:18
  • If you could see inside it, you couldn't do anything about it. What you need to know is what is the call chain going into it, from your code - i.e why is it being called. That will give you a clue of what you can do about it. – Mike Dunlavey Jul 17 '13 at 13:32

0 Answers0