Performance and Profiling help

Discussion in 'C++' started by Chun, Dec 24, 2007.

  1. Chun

    Chun Guest

    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::eek:streambuf_iterator<char,
    std::char_traits<char> > >::do_put(std:eek:streambuf_iterator<char,
    std::char_traits<char> >, std::ios_base&, char, unsigned long) const
    3.65 1.03 0.05
    std::basic_string<char, std::char_traits<char>, std::allocator<char>
    >::basic_string(std:string const&)

    2.92 1.07 0.04 585792 0.00 0.00
    std::basic_string<char, std::char_traits<char>, std::allocator<char> >
    std::eek:perator+<cha, std::char_traits<char>, std::allocator<char>
    >(std::basic_string<char, std::char_traits<char>, std::allocator<char>
    > const&, char const*)

    2.92 1.11 0.04
    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::vector<fieldptr, std::allocator<fieldptr>
    >::_M_fill_assign(unsigned int, fieldptr cnst&)

    1.46 1.28 0.02
    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
     
    Chun, Dec 24, 2007
    #1
    1. Advertising

  2. On 2007-12-24 10:11, Chun wrote:
    > 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.


    This if off-topic by the way. You are looking at the wrong values, the
    ones you should be interested in are those in cumulative column, the
    function you listed (__uninitialized_fill_n_aux) is just a helper
    function used by the some standard library functions. What you should be
    looking for is those functions that you call in your code, then try to
    figure out a way to do the same thing with smarter usages of the same or
    other functions.

    --
    Erik Wikström
     
    Erik Wikström, Dec 24, 2007
    #2
    1. Advertising

  3. Chun

    Michael Guest

    On Dec 24, 6:28 pm, Erik Wikström <> wrote:
    > On 2007-12-24 10:11, Chun wrote:
    >
    > > 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.

    >
    > This if off-topic by the way. You are looking at the wrong values, the
    > ones you should be interested in are those in cumulative column, the
    > function you listed (__uninitialized_fill_n_aux) is just a helper
    > function used by the some standard library functions. What you should be
    > looking for is those functions that you call in your code, then try to
    > figure out a way to do the same thing with smarter usages of the same or
    > other functions.
    >
    > --
    > Erik Wikström


    Thanks Erik. Do you know which group this question belongs to?

    Michael
     
    Michael, Dec 25, 2007
    #3
  4. Chun

    red floyd Guest

    Michael wrote:
    > On Dec 24, 6:28 pm, Erik Wikström <> wrote:
    >> On 2007-12-24 10:11, Chun wrote:
    >>
    >>> Hello,
    >>> I've written a dll and compiled with gcc in mingw environment. Running
    >>> the profiling on it I get the following output (extract).


    >> This if off-topic by the way. You are looking at the wrong values, the
    >> ones you should be interested in are those in cumulative column, the
    >> function you listed (__uninitialized_fill_n_aux) is just a helper
    >> function used by the some standard library functions. What you should be
    >> looking for is those functions that you call in your code, then try to
    >> figure out a way to do the same thing with smarter usages of the same or
    >> other functions.


    > Thanks Erik. Do you know which group this question belongs to?


    Try gnu.g++.help
     
    red floyd, Dec 25, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dimitri Ognibene
    Replies:
    0
    Views:
    400
    Dimitri Ognibene
    Apr 25, 2006
  2. Eric S. Johansson

    profiling and performance of shelves

    Eric S. Johansson, Jun 22, 2004, in forum: Python
    Replies:
    0
    Views:
    325
    Eric S. Johansson
    Jun 22, 2004
  3. Eric S. Johansson

    Re: profiling and performance of shelves

    Eric S. Johansson, Jun 25, 2004, in forum: Python
    Replies:
    0
    Views:
    445
    Eric S. Johansson
    Jun 25, 2004
  4. Russell Warren

    Profiling/performance monitoring in win32

    Russell Warren, Feb 17, 2006, in forum: Python
    Replies:
    0
    Views:
    401
    Russell Warren
    Feb 17, 2006
  5. =?ISO-8859-1?Q?Andreas_R=F8sdal?=

    Performance profiling Python code

    =?ISO-8859-1?Q?Andreas_R=F8sdal?=, Mar 24, 2006, in forum: Python
    Replies:
    2
    Views:
    1,113
    Felipe Almeida Lessa
    Mar 24, 2006
Loading...

Share This Page