[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

2 Questions: Saving Worlds, Optimizing worlds, loading microcode error tables (3! 3 questions....)

    Date: Tue, 22 Aug 89 12:11 EDT
    From: pan@Athena.Pangaro.Dialnet.Symbolics.Com (Paul Pangaro)

    OK, so I am finally doing :Optimize World, which is a great thrill and
    makes me feel good. But, what are people's experiences? Is it worth the
    time and FEP space? Does one notice anything different in paging really?

The biggest advantage you'll see from the Optimize World technology is
that we do it before shipping Genera.  The incremental benefit you get
from optimizing your own applications on top of Genera depends so much
on the specific application that it's difficult to characterize.  For
many small applications, there's not a lot of incremental benefit to
doing Optimize World.  For large applications which you observe to be
paging-bound, there's probably an advantage.  The advantage depends on
how much larger your application's working set is than available
physical memory.

Note that it's not just paging that's improved.  An example of a runtime
speedup is that symbols and generic functions are reordered to have
addresses which minimize hash collisions in flavor method tables.

    Also, when you save a world you get all kinds of "Optimizing flavor
    handlers, Optimizing compiled functions, etc..." Is that the same stuff?
    Is it part of what Optimize World does?

Optimizations which are cheap to implement are done all the time during
development, in the foreground or occasionally in background processes.

Optimizations which require a big single pass, but don't take longer
than a minute or so, are done at disk-save time unconditionally.

Optimizations which require more detailed analysis, or which use the GC
substrate to move objects around according to a specific algorithm, are
done by Optimize World.