C
Chun
Hello,
I've written a dll and compiled with gcc in mingw environment. Running
the profiling on it I get the following output (extract). My question
is what is the first entry that is taking 47% of the time?
void std::__uninitialized_fill_n_aux<fieldptr*, unsigned int,
fieldptr>(fieldptr*, unsignd int, fieldptr const&, std::__false_type)
Any pointers on how to reduce this time? I'm guessing it has something
to do with templates and gcc. Is there a alternative std C++ library
which does this quicker? - which has support on mingw and linux.
$ gprof ama.dll gmon.out -p
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
43.07 0.59 0.59 78552 0.01 0.01 void
std::__uninitialized_fill_n_aux<fieldptr*, unsigned int,
fieldptr>(fieldptr*, unsignd int, fieldptr const&, std::__false_type)
7.30 0.69 0.10 279600 0.00 0.00 Ama_ExtractField
6.57 0.78 0.09
_Unwind_SjLj_Register
5.84 0.86 0.08
_Unwind_SjLj_Unregister
5.11 0.93 0.07
std::string::append(char const*, unsigned int)
3.65 0.98 0.05
std::num_put<char, std:streambuf_iterator<char,
std::char_traits<char> > >::do_put(stdstreambuf_iterator<char,
std::char_traits<char> >, std::ios_base&, char, unsigned long) const
3.65 1.03 0.05
std::string::assign(std::string const&)
2.92 1.15 0.04 operator
new(unsigned int)
2.19 1.18 0.03 78552 0.00 0.01
ama::addfields(int)
2.19 1.21 0.03 Ama_CmdGetRec
2.19 1.24 0.03
std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int)
1.46 1.26 0.02 78552 0.00 0.01
std::string::_Rep::_M_destroy(std::allocator<char> const&)
1.46 1.30 0.02
std::string::reserve(unsigned int)
1.46 1.32 0.02
std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::flush()
Michael
I've written a dll and compiled with gcc in mingw environment. Running
the profiling on it I get the following output (extract). My question
is what is the first entry that is taking 47% of the time?
void std::__uninitialized_fill_n_aux<fieldptr*, unsigned int,
fieldptr>(fieldptr*, unsignd int, fieldptr const&, std::__false_type)
Any pointers on how to reduce this time? I'm guessing it has something
to do with templates and gcc. Is there a alternative std C++ library
which does this quicker? - which has support on mingw and linux.
$ gprof ama.dll gmon.out -p
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
43.07 0.59 0.59 78552 0.01 0.01 void
std::__uninitialized_fill_n_aux<fieldptr*, unsigned int,
fieldptr>(fieldptr*, unsignd int, fieldptr const&, std::__false_type)
7.30 0.69 0.10 279600 0.00 0.00 Ama_ExtractField
6.57 0.78 0.09
_Unwind_SjLj_Register
5.84 0.86 0.08
_Unwind_SjLj_Unregister
5.11 0.93 0.07
std::string::append(char const*, unsigned int)
3.65 0.98 0.05
std::num_put<char, std:streambuf_iterator<char,
std::char_traits<char> > >::do_put(stdstreambuf_iterator<char,
std::char_traits<char> >, std::ios_base&, char, unsigned long) const
3.65 1.03 0.05
2.92 1.07 0.04 585792 0.00 0.00::basic_string(std:string const&)
2.92 1.11 0.04std::allocator<char> > said:(std::basic_string<char, std::char_traits<char>, std::allocator<char>
const&, char const*)
std::string::assign(std::string const&)
2.92 1.15 0.04 operator
new(unsigned int)
2.19 1.18 0.03 78552 0.00 0.01
ama::addfields(int)
2.19 1.21 0.03 Ama_CmdGetRec
2.19 1.24 0.03
std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int)
1.46 1.26 0.02 78552 0.00 0.01
1.46 1.28 0.02std::vector said:::_M_fill_assign(unsigned int, fieldptr cnst&)
std::string::_Rep::_M_destroy(std::allocator<char> const&)
1.46 1.30 0.02
std::string::reserve(unsigned int)
1.46 1.32 0.02
std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::flush()
Michael