[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: очень хочется squirrelsh



On Wed, 20 Jan 2010 13:53:42 +0300
Alexey Pechnikov <pechnikov@mobigroup.ru> wrote:

> Hello!
> 
> On Wednesday 20 January 2010 13:15:47 Oleg Tsymaenko wrote:
> > Примеры с циклом в 100,000,000 итераций (src ниже):
> > -------+----------+-----+---------------------------
> > язык      время(s)    K   компилятор/интерпретатор
> > -------+----------+-----+---------------------------
> > C          0.315      1   gcc 4.3.4  (с "-O1" )
> > java      30.520     97   sun-java-1.5.0 (libgcj4.3.4)
> > perl      72.149    229   perl (v5.10.1)
> > php       71.872    228   php-cli(5.2.11 Zend-2.2.0)
> > python   110.251    350   python(2.5.4)
> > ruby     177.122    562   ruby(1.8.7) 
> > 
> > "K" это отношение времени работы на текущем языке к времени работы на
> > "C" Например для perl : K=72.149/0.315=229
> 
> Достаточно интересно. Дополню:
> 
> $ time tclsh8.6 ./hello.tcl 
> i=100000000; x=5499999945475522.0
> 
> real	0m36.908s
> user	0m36.854s
> sys	0m0.036s
> 
> $ gcc -o1 hello.c -o hello
> $ time ./hello
> i=100000000; x=5499999945475522.00
> 
> real	0m0.522s
> user	0m0.520s
> sys	0m0.000s
> 
> 
> Итого К=70.
> 
> $ cat hello.tcl
> proc test {} {
>     set x 0
>     set i 0
>     while {$i<100000000-1} {
>         set x [expr {$x+1.1*[incr i]}]
>     }
>     incr i
>     puts "i=$i; x=$x"
> }
> test

Ну и до кучи.

yuray@keeper:/tmp$ time ./a.out 
i=100000000; x=5499999945475522.00

real    0m0.297s
user    0m0.296s
sys     0m0.000s
yuray@keeper:/tmp$ time lua t.lua
i=100000000; x=5499999945475522.00

real    0m12.239s
user    0m12.225s
sys     0m0.012s

K=41

yuray@keeper:/tmp$ cat t.lua 
require"string"
i = 100000000
x = 0.0
for i = 0, 99999999 do
    x = x + 1.1*i
end
print( string.format( "i=%d; x=%.2f", i, x ) )



-- 
Best Regards,
Yuri Kozlov


Reply to: