On Mon, 2002-03-18 at 04:32, David Megginson wrote: > Andy Ross writes: > > > It's probably not a quirk. Inlining actually helps very little except > > for VERY small functions. It used to be that a function call was slow > > -- you had to spill a bunch of registers and a return value onto the > > stack, and then clean them up later. But modern processors can, for > > the most part, stick all that mess into into a few extra pipeline > > stages. > > Yes, that was my guess, too. When the method was just a straight > getter, like > > inline double get_foo () const { return _foo; } > > inlining didn't seem to hurt much (and in a couple of cases it made a > very tiny speed improvement),
Ahh, this is why I didn't see a big difference. Most of our inlines look just like this. >but once the inlined code had a couple > of lines, either in itself or indirectly by invoking other inlined > code from the standard library headers, inline caused a significant > slowdown (sometimes >25% in a tight loop). That happened even in the > inlined code wasn't invoked, i.e. > > inline void foo () > { > SG_LOG(SG_GENERAL, SG_ERROR, "An error"); > } > > then > > bool flag = false; > if (flag) > foo(); > // some other stuff > > I was surprised by how much faster things like this ran when I > un-inlined foo(). > > The build-time problem that Andy mentions has two causes: one is the > code inlining, and the other is the simple fact that so many modules > still include headers from so many other modules. Curts FGGlobals and > my property stuff is an attempt to get rid of (a lot of) that, but the > cleanup has only started. It might be some consolation to Andy that > things used to be much worse. > > > All the best, > > > David > > -- > David Megginson > [EMAIL PROTECTED] > > > _______________________________________________ > Flightgear-devel mailing list > [EMAIL PROTECTED] > http://mail.flightgear.org/mailman/listinfo/flightgear-devel > -- Tony Peden [EMAIL PROTECTED] We all know Linux is great ... it does infinite loops in 5 seconds. -- attributed to Linus Torvalds _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel