> Il 30/11/19 01:21, [email protected] ha scritto: > > egarrulo <[email protected]> wrote: > >> Can anybody give me a *rough* idea of how much RAM a basic program > >> written in Chicken and transpiled to C could require at run-time? Some > >> megabytes, dozens of megabytes, etc. With all features enabled, if > >> feasible. Speed is not a concern. > > What exactly do you mean by “all features enabled”? > > I mean full support for every language feature. I guess that some > language features - like "eval" and macros - may impact memory > requirements significantly. Please note that I am not a Scheme > programmer (yet). >
On my OpenBSD system, a simple read-eval-print-loop, statically linked to the CHICKEN runtime (libchicken.a) is 2692416 bytes. "ps u" reports VSZ (virtual memory) 4248kb, RSS (resident memory) 4848kb after startup. After allocating a vector of 1000000 elements and assigning it to a variable, VSZ is 30760k, RSS 12768k. The heap grows dynamically, but can be set to a fixed size by a runtime option. Clearing the variable and invoking a GC leaves us with VSZ 16999kb and RSS 4955kb, respectively. Not sure if this helps a lot, but the size of the base image is relatively modest, how much you can stuff into your RAM depends less on code size but on the working set, i.e. how much memory you allocate dynamically. CHICKEN's GC is a semispace collector where memory gets copied on GC from one space to the other, so half of the available heap memory is unused at any time. felix
