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

Re: gratuitous optimization and benchmarking



   Date: Sat, 8 Apr 2006 12:56:36 +0900
   From: "soo" <init@xxxxxxxxxxx>

   I'd like to know whether it was intentional that you performed
   the test with such an old version instead of new one.

I chose 0.57 because I knew that its compiler recognized CWV with
lambda operands, while 1.3's compiler did not (a fact which slipped my
mind when I first tried to explain the disparity between your results
and mine).  I expect that code to recognize this will be reintroduced
later on anyway.  I wanted to compare the performance in systems that
took the small effort to make multiple return values perform well, not
in systems where multiple return values are like your MU anyway but
with extra overhead.

   Are you sure that VALUES/CALL-WITH-VALUES is always faster than
   MU under any circumstances?  (The circumstances also include all
   implementations that exist at present.)  The rationale only said
   "... and somewhat slow under some circumstances.".  How about "
   ... and somewhat slow in some implementations."?

The value of including a remark about performance is lost if one must
include all sorts of qualifiers.  As I recommended initially, it would
be best to omit the mention of performance altogether; it would have
about as much value as a note in R5RS that CAR is sometimes faster
than CDR, depending on the circumstances and/or Scheme implementation.
(In fact, it may well be the case that CAR is much faster than CDR, in
a hypothetical system that practises cdr-coding!)