Hi

I have this simple numerical algorithm that computes an integral.
I compile it with

-prelude "(declare (standard-bindings) (block) (not safe))" -cc-options "-O4".

All functions are tail-call optimized.

The very last line of generated by ##gc-report-set! is

*** GC: 0 ms, 18.7G alloc, 1.52M heap, 45.3K live (3% 22896+23496)

The live area is consistently 45K throughout the entire execution.


Timing report indicates that 18% is spent on GC:

   7904 ms real time
    7784 ms cpu time (3684 user, 4100 system)
    13048 collections accounting for 1404 ms real time (584 user, 724 system)
    20078526600 bytes allocated
    480 minor faults
    no major faults




Besides tail-calls, what else can i do to reduce GC?