On Tue, Apr 07, 2015 at 09:43:55AM +0200, Felix Winkelmann wrote: > > A discussion has been raised on comp.lang.scheme regarding a simple > > raytracer and the performance it poses in various schemes. In this, > > Gauche an Racket outperform Chicken, and Racket does so > > resoundingly. To be frank, it looks rather troubling for Chicken. > > > > I had a go at looking at what Chicken was spending its time on and it > > appeared that it becomes mired in a tar pit of garbage collection > > tagging. Can someone else with a little more understanding shed some > > light on this? > > > > https://groups.google.com/d/msg/comp.lang.scheme/x1YafU5t0B0/M0mzhrl7LxYJ > > This is a terribly written program. It uses 3-element lists as vectors > (including higher-order "vector" arithmetic using "map") and allocates > like hell. The compiler can not do much with this code, and it > produces CPS calls everywhere.
It's still rather interesting that Racket and even Gauche don't seem to have a problem with this program. However, I think the program's author has an attitude problem. Also, the FUD this Larceny benchmark is spreading is getting on my nerves: The Larceny benchmarks use the r7rs egg, which implies the use of the "numbers" egg for all arithmetic, which means a complete slowdown in anything related to numerics. If you were to strip out the r7rs stuff it will be a lot faster because it can use inlining for all numeric operations. I have a solution in the works for the particular problem of slow numbers. This is in a CHICKEN 5 branch I've been working on, which I will announce in a week or so. Cheers, Peter
signature.asc
Description: Digital signature
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users