Subject: Re: data hygiene [Re: Why is Scheme not a Lisp?]
From: Erik Naggum <erik@naggum.net>
Date: Fri, 22 Mar 2002 07:59:47 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3225772799804783@naggum.net>

* Erann Gat
> Using MCL 4.3.1:
> 
> ? (setf l1 '(a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8))
> (A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8)
> ? (setf l2 '((a . 1) (b . 2) (c . 3) (d . 4) (e . 5) (f . 6) (g . 7) (h . 8)))
> ((A . 1) (B . 2) (C . 3) (D . 4) (E . 5) (F . 6) (G . 7) (H . 8))
> ? (getf l1 'h)
> 8
> ? (assoc 'h l2)
> (H . 8)
> ? (time (dotimes (i 1000000) (assoc 'h l2)))
> ;Compiler warnings :
> ;   Undeclared free variable L2, in an anonymous lambda form.
> (DOTIMES (I 1000000) (ASSOC 'H L2)) took 192 milliseconds (0.192 seconds)
> to run.
> NIL
> ? (time (dotimes (i 1000000) (getf l1 'h)))
> ;Compiler warnings :
> ;   Undeclared free variable L1, in an anonymous lambda form.
> (DOTIMES (I 1000000) (GETF L1 'H)) took 740 milliseconds (0.740 seconds) to run.
> Of that, 10 milliseconds (0.010 seconds) were spent in The Cooperative
> Multitasking Experience.
>  200 bytes of memory allocated.
> NIL

* Duane Rettig
| We should look at this carefully, Erann.  It is possible you are
| measuring the wrong thing here.

  Not only that, but the "Cooperative Multitasking Experience" seems like a
  fairly suspicious thing to include in such a test.  One would hope that
  at least a sufficient number of samples to produce statistically
  significant results would have been included.  (I seem to recall a lot of
  noise about statistical significance.)  The above really says nothing --
  for all we know, the system could have been swapping like mad, and that
  would be system time instead of user time, but such is not distinguished.
  A suffiently large sample would have removed such unintended 'spikes"
  from the data set.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.