Odkazuje adresar mimo lokalni stroj?
Dan Lukes
dan at obluda.cz
Wed Jun 28 23:14:08 CEST 2006
Lubomir Host napsal/wrote, On 06/28/06 21:54:
> Ak by to niekto robil cez find a grep/sed/awk s porovnanim premennych
> v shelli, efektivnejsie to asi nebude. Vychadza to na niekolko fork()
> a exec() volani, prepajanie vystupov, atd...
Proc tak slozite ? Vystacime s IFem, testem a tim findem. Promennou
nepotrebuju zadnou (snad krome te, ve ktere je jmeno mista, u ktereho
testuju, zda jde o NFS nebo ne - pokdu se nerozhodnu mit tohle ve
scriptu zadratovane "napevno").
> Nechce niekto spravit benchmark?
Dobre, na jednu stranu, u ulohy tohoto typu je asi jedno jak dlouho
zjistovani trva - pousti se to jednou za cas, takze jestli to trva
desetinu vteriny nebo vteriny dve realne asi nehraje roli. Pripoustim,
ze spis jde o neco jako "cest programatora" neprogramovat neco slozite a
narocne, kdyz to jde jednoduse a s malymi naroky na zdroje - ale pravem
mi pravdepodobne reknete, ze to uz se dneska nenosi.
Kdyz uz jsem ale udelal tu chybu a zacal si, nezbyva, nez to dotahnout
dokonce. Naspodu je pripojeny pozadovany benchmark. Jde o spusteni tri
ruznych scriptu resicich zadani (pomoci find, pomoci perlu, pomoci testu
na existenci souboru). Kazda z variant byla spustena osmkrat aby se
omezily statisticke fluktulace. Vysledky poskytla utilita 'time', ktera
je standardne v systemu, cas je uvedeny v milisekundach. U perlu jsem se
nenamahal programovanim a merim dobu behu 'prazdneho scriptu'.
Predpokladam, ze se shodneme, ze script, ktery by navic cokoliv delal by
musel bezet jedine dele a tim by posledni misto perlu mohl jedine
prohloubit.
Kdyz rikam, ze je perl pomaly a zabira hodne pameti a z toho duvodu na
trivialni ulohy nevhodny, neni to proto, ze ho nemam rad (i kdyz i to je
pravda), ale proto, ze je pomaly a zabira hodne pameti ...
Verim, ze to, ze zabira vic pameti nez jine metody uz dokazovat nebudu
muset.
Dan
**********************************************************
Shellovsky script pouzivajici 'find':
-----------
if ! [ -z "`find $1 -fstype nfs -a -maxdepth 0`" ] ; then
echo Is on NFS
else
echo Not on NFS
fi
-----------
real 13 13 13 13 13 14 13 14
user 5 0 2 1 0 0 0 0
sys 8 13 11 12 13 13 13 12
============
Prazdny perl, ktery nedela vubec nic:
-----------
perl -e ''
real 30 16 15 145 16 15 15 15
user 7 15 13 0 0 0 0 0
sys 16 2 1 145 16 16 16 14
============
Test na existenci souboru, o kterem verim, ze je pritomen jen kdyz je
namountovany NFS svazek:
-----------
if [ -r "$1" ] ; then
echo Is on NFS
else
echo Not on NFS
fi
-----------
real 8 6 6 6 6 6 6 6
user 0 0 0 0 0 0 0 4
sys 7 6 7 6 7 6 7 2
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz
More information about the Users-l
mailing list