Brainfuck interpreter tests Last update: 2004-12-20 OUTDATED! Test code: http://www.outcast-media.de/yabfi/mandelbrot.b Test machine: littlefarm.beyer, 700MHz PIII, 192MB RAM # test 1: bf 20040423 $ time bf mandelbrot.b real 6m26.177s user 6m5.010s sys 0m1.100s # test 1a: bf 20040728 (using gcc optimization) $ time bf mandelbrot.b real 4m42.615s user 4m19.080s sys 0m1.427s # test 1b: bf 20040828 (internal optimization) $ time bf mandelbrot.b real 3m23.214s user 3m13.313s sys 0m1.003s # test 1c: bf 20041219 (internal optimization) $ time bf mandelbrot.b real 1m21.455s user 1m18.797s sys 0m0.387s --- now the other candidates --- # Test 2: Kurt's Brainfuck Interpreter 0.1.2 # from http://web.ics.purdue.edu/~weberk/brainfuck.html $ ln -s mandelbrot.b mandelbrot.bf $ echo -e 'file mandelbrot\nrun\nexit' | ./bfi Kurt's Brainfuck interpreter version 0.1 Copyright (C) 2003 Kurt Weber Released under the terms of the GNU General Public License Version 2 > > Error: Unbalanced brackets...aborting # that's not true! # Test 3: GBrainfuck 0.3.1 from http://gbf.sourceforge.net/#interpreter $ time gbf -f mandelbrot.b real 20m28.603s user 17m52.920s sys 0m4.360s # Test 4: PHP-Brainfuck 1.01 from http://daniel.lorch.cc/projects/brainfuck/ $ time php4 mandelbrot.php -> no output after 21 minutes (CTRL+C) # Skipped Test 5: .sig C Brainfuck interpreter char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;main(){for(read(0,r,4000);c=*r; r++)c-']'||(d>1||(r=*p?*s:(--s,r)),!d||d--),c-'['||d++||(*++s=r),d||(*p+=c== '+',*p-=c=='-',p+=c=='>',p-=c=='<',c-'.'||write(2,p,1),c-','||read(2,p,1));} # Test 6: http://www.brainfuck.ca/BFI.pl version 1.0 by Thomas Cort $ time ./BFI.pl mandelbrot.b -> no output after 28 minutes (C-c) # Test 7: http://www.brainfuck.ca/BFI.c version 1.1 by Thomas Cort $ time ./BFI mandelbrot.b real 16m57.938s user 15m55.840s sys 0m2.960s # Test 8: http://www.hevanet.com/cristofd/brainfuck/qdb.c by Daniel Cristofani Comment: fast and even very few code $ time ./qdb mandelbrot.b real 1m58.949s user 1m53.625s sys 0m0.637s # Test 9: http://swapped.cc/bf/files/bff-1.0.2.tar.gz by Alex Pankratov $ time ./bff mandelbrot.b real 2m28.117s user 2m24.280s sys 0m0.440s # Test 9a: http://swapped.cc/bf/files/bff-1.0.3.1.tar.gz by Alex Pankratov $ time ./bff mandelbrot.b real 0m54.460s user 0m52.005s sys 0m0.325s Great, bff is really faster than mine. (Compare 9a and 1b) Congratulations to Alex Pankratov for that masterpiece :)