Original Post
I'm trying to learn how to use a profiling tool. I have written an implementation of the LZW compression algorithm, but it is extremely slow, so I tried if I could find the bottleneck with AMD's CodeAnalyst. However, I have no idea how to interprete the results. My program is single-threaded and just loads an uncompressed file, compresses it and stores the result in a package file. This is what CodeAnalyst says (top 5): 15% of timer samples std::_Iterator_base::_Orphan_me() 7% std::_Iterator_base::_Adopt() 5% std::_Iterator_base::~_Iterator_base 4% std::_Iterator_base::operator= 4% _RTC_CheckStackVars Most of the other items in the list are std::iterator operations as well. Are these results normal? What does std::_Iterator_base::_Orphan_me() exactly do? Is it possible to say something about where the bottleneck/problem might be when looking at these results? Should I run some other kind of profiling tool/session? Is there a way to make CodeAnalyst display only how much time each function in my program takes, ignoring STL functions? Is there any other advice you could give me on how to proceed?