On Fri, Sep 26, 2008 at 2:28 AM, Anthony Carrico <[EMAIL PROTECTED]> wrote: > > Wow! Obviously the record accessors aren't a significant problem here. > > Is there something wrong with numbers? Are rationals it really that > slow? Again almost all the time is spent in major GC. Why? Note that I'm > pretty new to Chicken. >
First, the compiler doesn't know anything about extended number types. Using numbers disables all default integrations of numerical operations (and turning many expressions that would normally be handled as intrinsics into normal function calls). Integrating the full numeric tower into the core would help, but is quite some piece of work (and must not depend on gmp). The high GC time is likely to be caused by repeated boxing of number objects and function calls (activation records are allocated on the heap). Inlining type-checks (as is done in gambit, there is a recent paper by Marc Feeley about this) and making the compiler full-numeric-tower aware are probably the solution. General inlining of record accessors would be beneficial in any case. The module system may help here. An overhaul of the compiler is definitely on the agenda. Unfortunately this needs time and manpower. cheers, felix _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
