Re: gratuitous optimization and benchmarking
Taylor R. Campbell 08 Apr 2006 13:46 UTC
Date: Sat, 8 Apr 2006 12:56:36 +0900
From: "soo" <xxxxxx@iniTerm.com>
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!)