I added the "mem-fib" target to the makefile to compute an approximation of the total memory allocation made by tachyon to initialize the runtime and compile fib. The result of adding all allocations logged by the gc is over 650 MB.
The result is automatically computed using a python script when calling the "mem-fib" target and the trace produced can be found in "gc_trace.txt".
The compilation for fib uses less than 50 MB on v8 (The total heap size before compiling fib is around 45 MB and no gc is triggered during fib compilation). It means that our object representation uses at least 5X more memory than v8, only on parsing.
Erick
Le 11-02-28 18:43 , Erick Lavoie a écrit :
On the good side, we have squashed enough bugs to start parsing after the bootstrap.
On the less good side, even with a heap of 256MB we are unable to parse the fibonacci program because too much memory is being allocated.
Maxime thinks we might be able to do it if we optimize the current implementation of the parser (and the rest of the compiler...). I think that given the current implementation, we might need a GC to be able to bootstrap.
To test it on your own machine, simply run "make bt-parser" with the latest revision of the master branch.
I'll try to find how much memory tachyon allocates on d8 when compiling fibonacci.
Erick