[plt-scheme] this code runs slower with modules?
On Dec 12, John Clements wrote:
> My understanding is that--for the vast majority of mzscheme
> programs-- putting things in a module makes them faster, because
> non-mutated module-level bindings do not need to be boxed.
> 
> However, for the attached code, uncommenting the first and last
> lines--that is, wrapping them in a module--makes them run about 20%
> _slower_. Are there known circumstances in which wrapping things in
> modules makes them slower?
I get faster performance with the unit version:
  winooski:/ssh/ccs/tmp eli> mzscheme -tmv x.ss
  placements per second: 3454.231433506045
  placements per second: 3840.2457757296465
  placements per second: 3477.0514603616134
  winooski:/ssh/ccs/tmp eli> mzscheme -fmv x.ss
  placements per second: 2336.9946249123627
  placements per second: 2497.5024975024976
  placements per second: 2169.6680407897593
But one thing I finally learned from Matthew when doing such tests is
to always try both CGC and 3M.  In this case, the unit version still
has an advantage:
  winooski:/ssh/ccs/tmp eli> mzscheme -tmv x.ss
  placements per second: 4470.272686633884
  placements per second: 4732.60766682442
  placements per second: 4361.09899694723
  winooski:/ssh/ccs/tmp eli> mzscheme3m -fmv x.ss
  placements per second: 2525.890376357666
  placements per second: 2620.545073375262
  placements per second: 2487.5621890547263
-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!