Portál AbcLinuxu, 30. dubna 2025 09:11
Zajímalo by mne, jakou odezvu považujete za přijatelnou, pokud jde o programy spouštěné interaktivně na příkazové řádce (používá se typicky v rouře, čte vstup, něco s ním dělá a vypisuje na výstup)
Nejde mi až tak o nějaké hodnocení efektivity zpracování dat, ale spíš o subjektivní „prožitek uživatele“ – jestli se mu s tím pracuje dobře, není otrávený, že aplikace je pomalá atd.
Naměřené hodnoty (příkazem time
):
real 0m0.127s user 0m0.108s sys 0m0.032s
Jsou to tedy desetiny vteřiny. Při zpracování 100× většího vstupu (a tím i výstupu) jsem naměřil:
real 0m0.282s user 0m0.232s sys 0m0.064sPro 1000× větší výstup:
real 0m0.433s user 0m0.568s sys 0m0.044s
(počítač je tři roky starý notebook, žádný superstroj)
P.S. původně jsem to chtěl dát do poradny, ale potřebuji anketu, takže je z toho nakonec blogový zápisek
Tiskni
Sdílej:
sort
nad souborem s miliony radku bude chvili trvat. U jednoduchych programu je limit uživatelské přívětivosti menší, třeba při spuštění shellu čekám že bude reagovat prakticky okamžitě. Každopádně 0.2s je podle mě úplně v pohodě, pokud to není program který by chtěl někdo použít ve skriptech kde se bude mnohokrát opakovat.
sleepenh 0.2; echo "hotovo";
-v
). Není důležité, aby byl výpis přesný (u některých věci jde čas odhadnou těžko), ale aby byl alespoň nějaký.
Alternativní řešení u programů pracujících se soubory je zjišťovat pozici v souboru (který může mít i desitký GB) pomocí hodnost v /proc/[pid]/fdinfo
v řadku pos
, který soubor to je jde zjistit přes symlinky v /proc/[pid]/fd
.
Jinak obecně bohužel nelze zjistit, jestli se program říznul nebo mu to jen dloho trvá, i když u některých to zjistíte, až když dojde swap a zaúřaduje OOM killer pv
– měřit, kolik proteklo rourou.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.