[r6rs-discuss] [Formal] Requirement to detect circular lists - benchmarks

From: Aubrey Jaffer <agj>
Date: Tue Oct 3 17:34:27 2006

 | Date: Mon, 2 Oct 2006 21:11:12 -0400 (EDT)
 | From: AndrevanTonder <andre_at_het.brown.edu>
 |
 | On Mon, 2 Oct 2006, AndrevanTonder wrote:
 |
 | > Amazingly, the r6rs cycle-checking version is consistently faster
 | > by about 10%. I would imagine the reason for this is that the
 | > loop is unrolled with respect to the r5rs version.
 |
 | Correction: I really should have compared the r6rs version with a
 | similarly unrolled version of the r5rs version (below). Upon doing
 | this, I find that the r5rs and r6rs times are indistinguishable in
 | Stalin.

On which processor?

 | This agrees with Kent Dybvig's experience in Chez.

length-circ accesses data from two locations simultaneously, while the
length-regular accesses only one. If there is no difference in speed,
then the whole list must be living in the L2 cache. Performance in
uncontrived list-intensive programs will not be identical.

Also, simply consing long lists sequentially will make their cache
footprints smaller than would consing during execution of a nontrivial
program.
Received on Tue Oct 03 2006 - 17:33:56 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC