I compared the performance of the microcode before and after recording Free_primitive, ../../ucode-20110624-0/src/microcode/scheme being the `before' and ../../ucode-20110624-1/src/microcode/scheme being the `after', on compiling the whole system. I first removed all existing compiled code, and then filled the OS's disk buffer cache by tarring up the microcode, band, and target system's source code to /dev/null; the system has enough RAM that everything involved should be cached in it, although writing output files entails writing to disk. (Probably ought to have run it on tmpfs instead.) I left the machine largely idle while running each test. For one run, I ran both tests almost simultaneously, started about a half a second apart from one another; this is a dual-core machine, so the times were only a little different, not doubled. Command-line invocation: % (find . -name '*.pkd' -o -name '*.crf' -o -name '*.fre' -o -name '*.bin' -o -name '*.ext' -o -name '*.bci' -o -name '*.com' | xargs rm) && (cd compiler && ./configure i386) && (tar --insecure -c -f - ../../ucode-20110624-0/src/microcode/scheme /usr/local/mit-scheme/current/lib/mit-scheme-i386 . > /dev/null) && time env -i PATH=/bin:/usr/bin MITSCHEME_LIBRARY_PATH=/usr/local/mit-scheme/current/lib/mit-scheme-i386 ../../ucode-20110624-0/src/microcode/scheme --heap 6000 --stack 200 --batch-mode <