\ Based on a benchmark by Christopher W. Cowell-Shah, Copyright 2004 \ 4tH version by J.L. Bezemer, Copyright 2004 \ int I/O Total \ Java 1.4.2 9.3 10.1 19.4 \ Visual C# 9.7 9.9 19.6 \ gcc C 9.8 10.0 19.8 \ Visual C++ 9.6 10.5 20.1 \ Java 1.3.1 14.5 12.3 26.8 \ Python/Psyco 29.7 10.5 40.4 \ Visual Basic 9.8 30.7 40.5 \ Visual J# 9.6 35.1 44.7 \ 4tH 3.4e (GCC) 170.8 17.0 187.8 \ Python 322.4 11.9 334.3 \ 4tH 3.4c (LCC) 320.0 33.0 353.0 \ Tests performed on a Pentium4 2 GHz, Win32 [needs lib/timer.4th] 1000000 constant ioMax 1000000000 constant intMax variable intResult \ FILE *stream; \ stream = fopen("C:\\TestGcc.txt", "w"); \ int i = 0; \ while (i++ < ioMax) \ { \ fputs("abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefgh\n", stream); \ } \ fclose(stream); \ char readLine[100]; \ stream = fopen("C:\\TestGcc.txt", "r"); \ i = 0; \ while (i++ < ioMax) \ { \ fgets(readLine, 100, stream); \ } \ fclose(stream); : DoIO s" test4th.txt" output open dup use 0 begin dup ioMax < while ." abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefgh" cr 1+ repeat drop close s" test4th.txt" input open dup use 0 begin dup ioMax < while refill drop 1+ repeat drop close ; \ int intResult = 1; \ int i = 1; \ while (i < intMax) \ { \ intResult -= i++; \ intResult += i++; \ intResult *= i++; \ intResult /= i++; \ } : DoInt 1 dup intResult dup >r ! begin dup intMax < while dup negate r@ +! 1+ dup r@ +! 1+ r@ @ over * r@ ! 1+ r@ @ over / r@ ! 1+ repeat r> drop drop ; timer-reset DoIO ." I/O benchmark: " .elapsed cr timer-reset DoInt ." int benchmark: " .elapsed cr