Benchmarkuj cokolwiek za pomocą tego potężnego narzędzia Linux

Hyperfine to łatwe w użyciu narzędzie do benchmarkingu, które pozwala na dokładne porównania efektywności programów, z możliwością eksportu wyników w formatach Markdown i JSON.
Podsumowanie
- Hyperfine to narzędzie do benchmarkingu, które uruchamia polecenia wielokrotnie, aby uzyskać dokładne średnie.
- Hyperfine jest przyjazne dla użytkownika i pozwala na eksport wyników w formatach Markdown lub JSON do dalszej analizy.
- Możesz użyć Hyperfine do porównania efektywności programów, optymalizacji kodu i automatyzacji benchmarkingu.
Jeśli chcesz wiedzieć, jak szybko działa, Hyperfine ci to powie. To przyjazne dla użytkownika, wszechstronne narzędzie dostępne na Linuxie sprawia, że benchmarking staje się łatwy.
Co to jest Hyperfine?
Hyperfine to otwartoźródłowe narzędzie do benchmarkingu dla Linuxa, macOS i Windows. Jak polecenie time, które jest dostępne w większości dystrybucji i powłok, hyperfine zmierzy czas potrzebny na uruchomienie programu:
Na pierwszy rzut oka hyperfine wykonuje tę samą pracę, co time, ale o wiele ładniej. Jednak to narzędzie ma kilka zalet; Hyperfine:
- Uruchamia polecenie wielokrotnie, co zapewnia dokładniejsze średnie.
- Może testować i porównywać kilka poleceń jednocześnie.
- Uwzględnia cache, wartości odstające oraz wpływ uruchamiania powłoki na wyniki.
- Może eksportować wyniki w formatach Markdown lub JSON do dalszej analizy.
Hyperfine jest szczególnie przydatne, gdy piszesz własne programy. Możesz wypróbować optymalizacje, przetestować je za pomocą Hyperfine i zaktualizować swój kod. Możesz także użyć go do wyboru między różnymi programami, na przykład grep a ripgrep:
Jak zainstalować i używać Hyperfine
Napisane w Rust, Hyperfine to wysoce przenośne polecenie, które zawiera strony pomocy i nowoczesne funkcje wiersza poleceń, takie jak długie opcje i uzupełnianie tabulatorami.
Instalacja
Paczki Hyperfine są dostępne dla wielu dystrybucji Linuxa i innych systemów operacyjnych.
Na Ubuntu możesz zainstalować Hyperfine z wydania .deb, np.
wget https://github.com/sharkdp/hyperfine/releases/download/v1.19.0/hyperfine_1.19.0_amd64.deb
sudo dpkg -i hyperfine_1.19.0_amd64.deb
Sprawdź stronę GitHub projektu w poszukiwaniu najnowszego wydania dla swojej architektury.
Na Fedorze możesz użyć menedżera pakietów dnf, aby zainstalować Hyperfine za pomocą prostego polecenia:
dnf install hyperfine
Na macOS lub innym systemie, który to obsługuje, możesz użyć Homebrew:
brew install hyperfine
Dla innych systemów sprawdź szczegółowe instrukcje instalacji projektu.
Podstawowe użycie Hyperfine
Hyperfine uruchamia podpowłokę, aby wykonać polecenia, które mu przekażesz. Nie musisz za bardzo o tym myśleć, ale oznacza to, że powinieneś uruchamiać Hyperfine w następujący sposób:
hyperfine command-in-path
# LUB
hyperfine /full/path/to/command
Oznacza to w szczególności, że nie możesz po prostu uruchomić Hyperfine dla programu w swoim bieżącym katalogu, przekazując jego nazwę jako argument:
hyperfine a.out
Jeśli spróbujesz tego, otrzymasz błąd „Polecenie zakończone kodem wyjścia różnym od zera 127”, co może być trudne do debugowania.
Zamiast tego po prostu przekaż ścieżkę do polecenia, np.
hyperfine ./a.out
Z podobnych powodów najlepiej jest cytować swoje polecenia:
hyperfine "du -skh ~"
Jak benchmarking z Hyperfine może pomóc
Benchmarking może być tak dokładny, jak zechcesz, niezależnie od tego, czy promujesz produkt, argumentujesz za zmianą kodu, czy po prostu interesuje cię, jak szybko możesz uruchomić grep na swoim dysku twardym.
Sprawdzanie efektywności twojego kodu
Hyperfine doskonale porównuje wyniki dwóch wersji programu w tych samych warunkach. Dzięki temu możesz udoskonalić logikę swojego programu i zoptymalizować kod.
Nasze artykuł na temat polecenia time w Linuxie zawiera dwa przykładowe programy C, które możesz wykorzystać do demonstrowania tej koncepcji. Pierwszy, loop1.c, iteruje po ciągu stałą liczbę razy (500,000), licząc liczbę myślników:
#include "stdio.h"
#include "string.h"
int main() {
char szString[] =.jak-to-geek-jak-to-geek-jak-to-geek-jak-to-geek;
int i, j, len = strlen(szString), count = 0;
for (j = 0; j < 500000; j++)
for (i = 0; i < len; i++)
if (szString[i] == '-')
count++;
printf("Policzono %d myślników\n", count);
}
Drugi, loop2.c, jest bardzo podobny, ale bezpośrednio wywołuje strlen() w warunku pętli:
#include "stdio.h"
#include "string.h"
int main() {
char szString[] = "jak-to-geek-jak-to-geek-jak-to-geek-jak-to-geek";
int i, j, count = 0;
for (j = 0; j < 500000; j++)
for (i = 0; i < strlen(szString); i++)
if (szString[i] == '-')
count++;
printf("Policzono %d myślników\n", count);
}
Ponieważ wywołanie funkcji znajduje się teraz w zewnętrznej pętli, strlen() jest uruchamiane 500 000 razy zamiast tylko raz. Polecenie time może dostarczyć podstawowych informacji o tym, jak te dwie wersje tego samego programu się porównują:
Ale hyperfine daje więcej szczegółów, nawet w najbardziej podstawowym, domyślnym trybie:
Pomiar Długoterminowych Poleceń
Chociaż Hyperfine jest szczególnie interesujące dla programistów i administratorów systemów, możesz go używać w innych okolicznościach. Na przykład, jeśli kiedykolwiek używasz długoterminowego polecenia i uruchamiasz je w tle podczas pracy, prawdopodobnie nie wiesz, ile czasu faktycznie zajmuje. Nabycie nawyku uruchamiania go przez Hyperfine może pomóc:
W przypadku długoterminowego polecenia prawdopodobnie będziesz chciał ograniczyć liczbę razy, które Hyperfine je uruchamia. Domyślnie narzędzie korzysta z własnych heurystyk, aby określić dobrą liczbę uruchomień dla dokładnych wyników. Możesz to nadpisać, używając opcji --runs:
hyperfine --runs 1 'du -skh ~'
Radzenie Sobie z Ostrzeżeniami i Błędami
Hyperfine jest bardzo chętne do raportowania ostrzeżeń, prawdopodobnie dlatego, że ma na celu dostarczenie wysoce dokładnych statystyk. Ale nie zawsze musisz się tym przejmować, aby uzyskać rygorystyczny wynik naukowy; czasami wystarczy zdobycie ogólnego zrozumienia. Hyperfine oferuje opcje, które odpowiadają takim przypadkom.
Jednym z takich przypadków jest polecenie zwracające niezerowy kod zakończenia, co zazwyczaj wskazuje, że polecenie nie powiodło się. W takich przypadkach Hyperfine zgłosi błąd:
Jak wyjaśnia komunikat o błędzie, możesz zignorować takie błędy, używając opcji -i, lub spróbować je zdiagnozować, używając --show-output. W zależności od tego, co robisz, pierwsza opcja prawdopodobnie wystarczy.
Na przykład, jeśli poprzedni przykład du zgłasza błąd, nadal będzie działać do zakończenia. Jeśli uruchomisz du na całym dysku, może wystąpić błąd uprawnień na pojedynczym pliku, co sprawia, że uruchomienie jest bezużyteczne. Zauważ, że uruchamianie z -i nadal wyprodukuje ostrzeżenie:
Ostrzeżenie: Ignorowanie niezerowego kodu zakończenia.
Możesz również zobaczyć błędy związane z tym, jak Hyperfine działa podczas gdy pamięć podręczna jest zimna lub inne programy są uruchomione. Opcja --warmup uruchomi twoje polecenie kilka razy przed rozpoczęciem testowania, co pomaga rozgrzać pamięć podręczną i może przynieść bardziej realistyczne wyniki.
Możesz również zrobić odwrotnie, aby zmierzyć najgorszy przypadek. Opcja --prepare pozwala ci uruchomić inne polecenie w trakcie każdego uruchomienia testowego; od Ciebie zależy, aby dostarczyć polecenie, które wyczyści wszelką pamięć podręczną mogącą wpłynąć na wyniki.
Praca z Wynikami Hyperfine
Hyperfine przedstawia wyniki czasowe w miły, kompaktowy, kolorowy sposób, który jest idealny do szybkiego sprawdzenia w terminalu. Jeśli jednak chcesz dokładniej przeanalizować wyniki, będziesz chciał je w lepszym formacie.
Opcja --export-json pozwala określić plik do przechowywania wyników w formacie JSON. Będą one wyglądać mniej więcej tak:
Te wyniki pokazują, że Hyperfine może uruchomnić twoje polecenie znacznie więcej razy, niż byś się spodziewał. W tym przypadku uruchomił ls ponad 400 razy, aby zbudować kompleksowy zbiór wyników.
Możesz nawet chcieć wykonywać tego rodzaju benchmarking jako regularny test, czy to wobec konkretnego oprogramowania, czy bieżącego sprzętu, na którym to uruchamiasz. Ustawienie zadania cron do automatyzacji benchmarking będzie znacznie łatwiejsze.
Wszystko co musisz wiedzieć
Czy warto przesiąść się na Linuxa?
Przesiadka na Linuxa może być świetnym krokiem w stronę zwiększenia kontroli nad swoim systemem operacyjnym. Oto kilka powodów, dla których warto rozważyć ten krok:
- -
Pełna kontrola
- : Linux daje użytkownikom swobodę modyfikacji i konfiguracji, co pozwala na dostosowanie systemu do własnych potrzeb.
- Doskonała społeczność: Duża i aktywna społeczność użytkowników oferuje wsparcie, porady oraz dokumentację, co ułatwia naukę i rozwiązywanie problemów.
- Bezpieczeństwo: Linux jest uważany za bardziej odporny na wirusy i ataki hakerskie w porównaniu do niektórych innych systemów operacyjnych.
- Wydajność: Linux można zainstalować na różnych urządzeniach, w tym tych o słabszych parametrach, co sprawia, że jest idealny dla starszego sprzętu.
- Darmowe oprogramowanie: Wiele dystrybucji Linuxa i aplikacji jest dostępnych za darmo, co może znacząco obniżyć koszty użytkowania komputera. Dla osób, które chcą eksplorować nowe możliwości i korzystać z systemu operacyjnego, który daje im pełną kontrolę nad swoim komputerem, Linux jest doskonałym wyborem. Jego zalety oraz wsparcie społeczności sprawiają, że nauka i korzystanie z Linuxa może stać się przyjemną i satysfakcjonującą przygodą.
Jaki jest test porównawczy cis dla systemu Linux?
Test porównawczy CIS dla systemu Linux to zestaw wytycznych dotyczących bezpiecznych konfiguracji, zgodnych z najlepszymi praktykami. Oto kluczowe informacje na ten temat:
- -
CIS Benchmarks
- : Zawierają wytyczne dla systemów operacyjnych, aplikacji oraz środowisk chmurowych, umożliwiając oceny bezpieczeństwa.
- CIS Amazon Linux 2 Benchmark: Obejmuje specyficzne wytyczne dla instancji Amazon Linux 2, zapewniając zalecenia dotyczące zabezpieczeń i konfiguracji.
- Zalecenia: Obejmują m.in. kontrolę dostępu, konfigurację zapór ogniowych, aktualizacje oprogramowania i zarządzanie użytkownikami.
- Cis AWS Foundations Benchmark: Dotyczy ogólnych zasad bezpieczeństwa dla usług AWS, a także poziomów kont i ustawień.
- Zastosowanie: Pomaga organizacjom w identyfikacji luk w zabezpieczeniach oraz w poprawie ogólnej postawy bezpieczeństwa systemów Linux. Przestrzeganie tych wytycznych wspiera lepszą ochronę danych i zmniejsza ryzyko incydentów bezpieczeństwa.
Jak zoptymalizować Linuxa?
Aby zoptymalizować wydajność systemu Linux, możesz zastosować następujące kroki:
- Aktualizuj System Regularnie: Utrzymuj system w najnowszej wersji, aby wykorzystać poprawki błędów i optymalizacje.
- Usuń zbędne aplikacje i usługi: Przejrzyj zainstalowane oprogramowanie i usuń to, czego nie używasz. Zmniejszy to obciążenie systemu.
- Wybierz Lekki Środowisko Pulpitu: Zamiast zasobożernych środowisk graficznych, jak GNOME czy KDE, rozważ użycie LXDE, XFCE lub Mate.
- Zoptymalizuj Start Systemu: Użyj narzędzi takich jak systemd-analyze, aby zidentyfikować i wyłączyć zbędne usługi uruchamiane podczas startu.
- Zainstaluj Oprogramowanie Optymalizujące: Aplikacje, takie jak BleachBit, mogą pomóc w czyszczeniu systemu z niepotrzebnych plików.
- Monitoruj Użycie Zasobów: Korzystaj z narzędzi takich jak top lub htop, aby zidentyfikować aplikacje zużywające zbyt dużo CPU lub RAM.
- Optymalizuj Dysk SSD: Włącz TRIM, aby utrzymać wydajność dysków SSD i zmniejszyć zużycie.
- Wyłącz Efekty Wizualne: Zmniejsz graficzne efekty pulpitu, co pozwoli na bardziej płynne działanie systemu na słabszym sprzęcie. Stosując te porady, możesz znacznie poprawić wydajność swojego systemu Linux.
Jaki Linux jest najbezpieczniejszy?
Najbezpieczniejsza dystrybucja Linuxa zależy od twoich potrzeb. Oto kilka opcji:
- -
Ubuntu, Debian, Fedora
- : Idealne dla większości użytkowników, łączące bezpieczeństwo z łatwością użycia. Regularne aktualizacje i duża społeczność wsparcia czynią je dobrymi wyborami.
- Qubes OS: Skierowany do zaawansowanych użytkowników, wykorzystuje wirtualizację do izolacji aplikacji, co znacznie zwiększa bezpieczeństwo.
- Tails: Stworzony z myślą o prywatności, działa z pamięci USB i pozostawia minimalny ślad na komputerze. Doskonały dla użytkowników potrzebujących anonimowości. Wybór zależy od indywidualnych potrzeb i poziomu zaawansowania użytkownika.
Jeśli ciekawią Cię artykuły podobne do Benchmarkuj cokolwiek za pomocą tego potężnego narzędzia Linux, zajrzyj do kategorii Linux i odkryj jeszcze więcej interesujących treści.
Dodaj komentarz

Możesz być zainteresowany