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