[linux] Testovací dátový súbor

Marian Cavojsky cavo+konf na cavo.sk
Pondělí Červen 15 20:32:36 CEST 2009


On Mon, Jun 15, 2009 at 06:33:09PM +0200, Ing. Ján ONDREJ wrote:
> On Mon, Jun 15, 2009 at 06:21:37PM +0200, (-K JohnNy wrote:
> > > Len sa chcem podeliť, veď som dávno nepísal :-)
> > > 
> > > Majme zadanie vygenerovať súbor obsahujúci milión-krát znak 'x'
> > > bez nového riadku a na konci tohto výstupu jeden nový riadok.
> > 
> > Zaujímavý problém, trošku som sa inšpiroval a vyskúšal ďalšie možnosti
> > riešenia. (-;
> 
> Nedalo mi to, tak som optimalizoval aspon kod pre python. Ostatne som
> neskusal, ale ten python kod mi bezi aspon o rad rychlejsie.
> 
> > johnny64 at zriebae:~$ time (echo -e \
> > 'import sys\nfor i in range(1000000):\n    sys.stdout.write("x")\nprint' \
> >  | python > /dev/null)
> > 
> > real    0m5.958s
> > user    0m5.572s
> > sys     0m0.116s
> > 
> > Podstatne rýchlejšie, než bash, ale stále nič extra.
> 
> No to bude tym, ze si ten program nespravne napisal. :-)
> Pre python sa to takto proste nerobi. :-)
> 
> Skus toto:
> 
> [ondrejj at work ~]$ time (echo 'import sys;sys.stdout.write("x"*1000000);print' | python >/dev/null)
> 
> real    0m0.022s
> user    0m0.018s
> sys     0m0.005s

Tak aby tu bol zastupeny aj Perl. :-)

Klasicky:

:) [cavo at octopus ~]$ time ( echo -e '$i=0; while( $i<1000000){ print "x"; $i++;};print "\n";'|perl > /dev/null)

real    0m0.592s
user    0m0.590s
sys     0m0.010s

Cez generovanie retazca:

:) [cavo at octopus ~]$ time ( echo -e 'print "x" x 1000000, "\n";' | perl > /dev/null)

real    0m0.009s
user    0m0.010s
sys     0m0.000s

Pre porovnanie som spustil aj tie Pythonovske verzie.

:) [cavo at octopus ~]$ time (echo -e 'import sys\nfor i in range(1000000):\n sys.stdout.write("x")\nprint'| python > /dev/null)

real    0m1.024s
user    0m0.950s
sys     0m0.040s
:) [cavo at octopus ~]$ time (echo 'import sys;sys.stdout.write("x"*1000000);print'| python >/dev/null)

real    0m0.027s
user    0m0.020s
sys     0m0.000s

Predsa len je to praca s retazcami. ;-)

-- 
Marian


Další informace o konferenci linux