Сравнил производительность sh, gforth, gcc и tcc.
Этож насколько нужно было так испортить реализацию форта, чтобы он так отстал..
Конечно интерпретатор sh в 1000 раз медленнее gforth, но медленнее скомпилированного gcc в 10 раз. Код на tcc в 5 раз медленее скомпилированного gcc.
Железка: atom N270
bench.sh
#!/bin/sh
for i in {1..1000000}; do
r=1+1
done
bench.fs
: bench for 1 1 + drop next ;
1000000000 bench
bench.c
void main()
{
unsigned int r;
unsigned long i;
for(i=1; i<=1000000000; i++);
{
r=1+1;
}
}
Результаты
time ./bench.sh =>
real 0m15.121s user 0m14.908s sys 0m0.183s (выполнялся цикл в 1000 раз меньше)
time gforth-fast ./bench.fs -e bye =>
real 0m17.916s user 0m17.862s sys 0m0.028s
time ./gcc.out =>
real 0m1.288s user 0m1.284s sys 0m0.002s
time ./tcc.out =>
real 0m6.423s user 0m6.406s sys 0m0.007s