• Leigh Stoller's avatar
    Work on an optimization to the perl code. Maybe you have noticed, but · 92f83e48
    Leigh Stoller authored
    starting any one of our scripts can take a second or two. That time is
    spent including and compiling 10000s of thousands of lines of perl
    code, both from our libraries and from the perl libraries.
    
    Mostly this is just a maintenance thing; we just never thought about
    it much and we have a lot more code these days.
    
    So I have done two things.
    
    1) I have used SelfLoader() on some of our biggest perl modules.
       SelfLoader delays compilation until code is used. This is not as
       good as AutoLoader() though, and so I did it with just a few 
       modules (the biggest ones).
    
    2) Mostly I reorganized things:
    
      a) Split libdb into an EmulabConstants module and all the rest of
         the code, which is slowly getting phased out.
    
      b) Move little things around to avoid including libdb or Experiment
         (the biggest files).
    
      c) Change "use foo" in many places to a "require foo" in the
         function that actually uses that module. This was really a big
         win cause we have dozens of cases where we would include a
         module, but use it in only one place and typically not all.
    
    Most things are now starting up in 1/3 the time. I am hoping this will
    help to reduce the load spiking we see on boss, and also help with the
    upcoming Geni tutorial (which kill boss last time).
    92f83e48
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
backend Loading commit data...
bugdb Loading commit data...
capture Loading commit data...
cdrom Loading commit data...
collab Loading commit data...
daikon Loading commit data...
db Loading commit data...
delay Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
flash Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
image-test Loading commit data...
install Loading commit data...
ipod Loading commit data...
lib Loading commit data...
mfs Loading commit data...
mote Loading commit data...
named Loading commit data...
node_usage Loading commit data...
os Loading commit data...
patches Loading commit data...
pelab Loading commit data...
protogeni Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.loc-ignore Loading commit data...
AGPL-COPYING Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
MOVED-TO-WIKI Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
VERSION Loading commit data...
WEBtemplate.in Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
defs-aerolab Loading commit data...
defs-calfeld-emulab Loading commit data...
defs-davidand-emulab Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-example-privatecnet Loading commit data...
defs-fbsd7 Loading commit data...
defs-fish-emulab Loading commit data...
defs-gatech Loading commit data...
defs-gtw-emulab Loading commit data...
defs-johnsond-emulab Loading commit data...
defs-kevina-emulab Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-mike-emulab Loading commit data...
defs-newbold-emulab Loading commit data...
defs-newbold-macdb Loading commit data...
defs-ricci-emulab Loading commit data...
defs-shash-emulab Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-wbsun-emulab Loading commit data...
defs-wide Loading commit data...