Boost logo

Boost Users :

Subject: Re: [Boost-users] [serialization] Solved: baffled by very long archive loadtime
From: Martin Weinberg (weinberg_at_[hidden])
Date: 2010-03-30 23:58:59


Thanks to all for the suggestions. I did end up using valgrind
--tool=callgrind and kcachegrind. Compiling with -pg was
not feasible.

Anyway, I found that all the time (80%) was spent in
reset_object_address(). Eliminating the polymorphic archives
decreased the load time by a factor of 1000!

I believe I found the issue requiring the -fno-inline-small functions
as well. So at this point everything is working "-O3". I'm grateful
for the help.

On Mon, Mar 29, 2010 at 12:58:38PM -0800, Robert Ramey wrote:
> Martin Weinberg wrote:
> > On Mon, Mar 29, 2010 at 11:09:42AM -0800, Robert Ramey wrote:
> >> >I have noticed that I need to compile with "-Ox
> >>> -fno-inline-small-functions" when x=2,3. I'm not sure if this is
> >>> significant.
> >>
> >> I would expect this to be extremely significant. why do you
> >> need to do this. I have used gcc profiling to investigate
> >> bottlenecks in the library. You might look at the directory
> >> ../libs/serialization/performance to see how to do this.
> >
> > Thanks to all who replied! I'll try compiling with profiling.
> > Meanwhile, in direct answer to the question above, if I compile
> > without suppressing inline-small-function optimization, I get these
> > errors:
>
> The most effective thing you could is to investigate the cause of these
> errors.
> prsumable they are due to the the new class you added.
> Also, polymorphic archives a measurable slower than the non-polymorphic
> versions. So if performance is important to you, then consider changing.
> I realize that this will result in more instanciated code, but the execution
> will be faster.
>
> Finally, you might consider moving to the most recent version of the
> library. It's much harder to help someone who's using an older package.
>
> Robert Ramey
>
> >
> > cli:
> > /usr/local/boost_1_38_0/include/boost-1_38/boost/archive/impl/archive_pointer_oserializer.ipp:64:
> > static const boost::archive::detail::basic_pointer_oserializer*
> > boost::archive::detail::archive_pointer_oserializer<Archive>::find(const
> > boost::serialization::extended_type_info&) [with Archive =
> > boost::archive::polymorphic_oarchive]: Assertion `it !=
> > boost::serialization::singleton< oserializer_map<Archive>
> > >::get_const_instance().end()' failed. cli:
> > /usr/local/boost_1_38_0/include/boost-1_38/boost/archive/impl/archive_pointer_oserializer.ipp:64:
> > static const boost::archive::detail::basic_pointer_oserializer*
> > boost::archive::detail::archive_pointer_oserializer<Archive>::find(const
> > boost::serialization::extended_type_info&) [with Archive =
> > boost::archive::polymorphic_oarchive]: Assertion `it !=
> > boost::serialization::singleton< oserializer_map<Archive>
> > >::get_const_instance().end()' failed. cli:
> > /usr/local/boost_1_38_0/include/boost-1_38/boost/archive/impl/archive_pointer_oserializer.ipp:64:
> > static const boost::archive::detail::basic_pointer_oserializer*
> > boost::archive::detail::archive_pointer_oserializer<Archive>::find(const
> > boost::serialization::extended_type_info&) [with Archive =
> > boost::archive::polymorphic_oarchive]: Assertion `it !=
> > boost::serialization::singleton< oserializer_map<Archive>
> > >::get_const_instance().end()' failed. cli:
> > /usr/local/boost_1_38_0/include/boost-1_38/boost/archive/impl/archive_pointer_oserializer.ipp:64:
> > static const boost::archive::detail::basic_pointer_oserializer*
> > boost::archive::detail::archive_pointer_oserializer<Archive>::find(const
> > boost::serialization::extended_type_info&) [with Archive =
> > boost::archive::polymorphic_oarchive]: Assertion `it !=
> > boost::serialization::singleton< oserializer_map<Archive>
> > >::get_const_instance().end()' failed.
> >
> >
> >>
> >> _______________________________________________
> >> Boost-users mailing list
> >> Boost-users_at_[hidden]
> >> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>

-- 
Martin Weinberg                      Phone: (413) 545-3821
Dept. of Astronomy                   FAX:   (413) 545-4223
530 Graduate Research Tower	     weinberg_at_[hidden]
University of Massachusetts
Amherst, MA  01003-4525

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net