On 26-Sep-08, at 11:29 AM, Bradley Lucier wrote:
On Sep 26, 2008, at 9:23 AM, Marc Feeley wrote:
Another point I want to make is that Cheney on the MTA give you
"free" call/cc only after paying a premium on other things, namely
stack-like behaving function calls and tail-calls. Because typical
code, and even realistic call/cc intensive code such as a thread
system, do much more of these other things than calling call/cc,
the overall performance of the system is suboptimal in general.
With the latest set of benchmark results on 51 benchmark programs,
in "r6rs" mode Chicken is 2.7 times slower than Gambit on average
(geometric mean). That's the cost of "free" call/cc.
Marc:
I'd just like to point out here that, as I'm sure you're aware,
there are many different implementation decisions that are made in
each of Chicken and Gambit and it is unlikely that any speed
difference between the two can be attributed to any single design
decision. The choice of "free" call/cc via Cheney on the MTA may,
indeed, be an implementation choice that affects adversely nearly
all other aspects of an implementation (which I doubt), but that
could only be determined after quite a bit of analysis.
Brad
Yes (of course). I did not mean that the cost of Cheney on the MTA is
"2.7 times slower code on average". I meant that a part of that
factor of 2.7 was due to Cheney on the MTA. I think it is a
substantial part, but the exact amount would require a lot of
analysis... enough to generate several interesting research papers!
Marc
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users