On 2018-07-20 at 23:31, Michał Czarkowski wrote:
> W jaki sposób mógłbym sprawdzić czas wykonywania się skryptu, jak to zrobiłeś?
Uruchamiając skrypt (albo ogólnie program) za pośrednictwem polecenia
'time' (wbudowane polecenie basha albo „wolnostojące” /usr/bin/time),
czyli np.:
time ./skrypt
> Urządzenie podpięte do systemu wysyła niewielką
> ilość danych co sekundę, mniej więcej. Prędkość zastosowanego przeze mnie
> rozwiązania jest bardziej :-D niż wystarczająca. Zresztą skrypt wygląda juz inaczej,> w pętli „while” mam „case in” i kilka warunków, skrypt tworzy również
prosty kod html,
> zapisuje do plików i robi to wystarczająco szybko, by odczytać ponownie dane z podłączonego
> urządzenia. Użyty do tego komputer, choć nie najnowszy, jest wystarczająco wydajny do
> zrealizowania tego zadania. :-D
No proszę, nawet przemknęło mi przez głowę, że źródło danych musi być
powolne, a plik wyjściowy monitorowany „na żywo”, bo nie bardzo widzę
inne uzasadnienie zastosowania 'unbuffer' przy przekierowywaniu wyniku
do pliku. :-) Oczywiście obróbka danych wyjściowych uzasadnia
tę pętlę, do której wcześniej miałem zastrzeżenia…
> Pewnie zoptymalizujÄ™ skrypt w proponowany przez Ciebie sposĂłb uĹĽywajÄ…c
> „grep "cośtam" /dev/jakieś_urządzenie” na początku skryptu.
Nie zaszkodzi (oczywiście w Twoim przypadku 'unbuffer grep' albo,
dla urozmaicenia, 'stdbuf -oL grep', albo 'grep --line-buffered')
-- panuje opinia, ĹĽe dobrÄ… praktykÄ… jest unikanie UUoC (useless use
of cat) i choć czasem może się to wydawać mniej przejrzyste to zawsze
to jeden (sub)shell i jedno polecenie mniej do uruchomienia (czyli
oszczędność zasobów nie najnowszego komputera ;-) ). Ale u Ciebie
jakiegoś znaczącego zysku z tej optymalizacji pewnie nie będzie…
--
mrg