I really want to know how much time different routines take in my application. I am using GCC 3.4.2 with Dev-C++ IDE and gprof for profiling. Here is the begining of the result file:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
7.48 0.89 0.89 __gnu_cxx::__exchange_and_add(int volatile*, int)
7.39 1.77 0.88 _Unwind_SjLj_Register
6.22 2.51 0.74 _Unwind_SjLj_Unregister
3.70 2.95 0.44 2425048 0.00 0.00 rt::wctree_node<std::vector<OPT_Inst, std::allocator<OPT_Inst> > >::get(std::string, bool&)
3.28 3.34 0.39 std::string::operator[](unsigned int)
3.11 3.71 0.37 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
2.86 4.05 0.34 std::string::_M_mutate(unsigned int, unsigned int, unsigned int)
2.69 4.37 0.32 __gnu_cxx::__atomic_add(int volatile*, int)
2.61 4.68 0.31 38655 0.00 0.00 SPSBase::containerBoxFillSet(double, double, double, double)
Can someone explain to me the first ones except rt::wctree (that are obviously not made by me), where do they come from and what is their goal in the program?