On Fri, Mar 8, 2013 at 11:44 AM, Sven Van Caekenberghe <[email protected]> wrote:

>
> On 08 Mar 2013, at 13:09, Camillo Bruni <[email protected]> wrote:
>
> > On 2013-03-08, at 11:53, Sven Van Caekenberghe <[email protected]> wrote:
> >
> >> On 08 Mar 2013, at 11:16, Sven Van Caekenberghe <[email protected]> wrote:
> >>
> >>> But I have said this before: the wall clock time of loading a lot of
> code is actually close to unacceptable - I don't think it is the download
> or the compilation, but more all the dynamic stuff that happens after that.
> There should be a way to not do all those updates for each method and move
> the updates to one big batch update after the load - if that is possible.
> >>
> >> To continue my rant (sorry ;-) about the problem with slow code loading.
> >>
> >> These are some benchmarks on the same machine:
> >>
> >> $ ./vm.sh experimental.image eval '[Smalltalk allClassesAndTraits do:
> #compileAll] timeToRun'
> >> 106532
> >>
> >> $ ./stack/vm.sh experimental.image eval '[Smalltalk allClassesAndTraits
> do: #compileAll] timeToRun'
> >> 221708
> >>
> >> So it takes like 3 minutes to recompile every method in the system.
> >>
> >> How in the hell can it take 40 minutes to load some code (with all
> packages already present in the package-cache (but then again the
> package-cache is only 3.5 Mb, which could be downloaded in seconds)) ?
> >
> > I with you on this one! :D I always wondered what Metacello and Compiler
> do there! :D
>
> Well, open the Time Profiler and load your favourite Config. You'll have a
> hard time finding the actual time slice of the compiler. As far as I could
> see in my run it was less than 1% !  All the rest MC, Gofer, RPackage and
> SystemAnnouncement stuff, even completion stuff.
>
>
Indeed, we noticed this as well when benchmarking Tanker to replace source
compilation in Monticello. We got to a similar conclusion.

Quite a challenge to optimize if you ask me.
>
>
- Batch notifications: do not do a notification per method/class added.
Instead do one notification with all the methods/classes together.


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to