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: