To jest polecenie cpipe, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
cpipe - skopiuj standardowe wyjście na standardowe wyjście podczas liczenia bajtów i raportowania postępu
STRESZCZENIE
potok [-b brozmiar] [-vt] [-vr] [-vw] [-ngr] [-s prędkość]
OPCJE
-b rozmiar bufora w kB,
1 Int wartość od 1 do oo.
Domyślnie: „128”
-vt pokaż przepustowość.
-vr pokaż czasy odczytu.
-vw pokazuje czasy zapisu.
-ngr nie chciwy czytać. Nie wymuszaj pełnego bufora przy odczycie przed rozpoczęciem pisania.
-s ograniczenie prędkości w kB/s,
1 Podwójna wartość od 1 do oo.
OPIS
Cpipe kopiuje swoje standardowe wejście do swojego standardowego wyjścia podczas mierzenia czasu, który to zajmuje
odczytywanie bufora wejściowego i zapisywanie bufora wyjściowego. Jeśli co najmniej jeden z -vx opcje to
podane, drukowane są statystyki średniej przepustowości i całkowitej ilości skopiowanych bajtów
na standardowe wyjście błędów.
Nie Chciwy Czytaj
Zwykle cpipe robi wszystko, aby całkowicie wypełnić swój bufor (opcja -b) przed rozpoczęciem
pismo. Jednak w niektórych sytuacjach, np. jeśli rozmawiasz z interaktywnym programem przez cpipe,
to blokuje komunikację: wspomniany program czeka na dane wejściowe, których nigdy nie zobaczy,
ponieważ dane wejściowe utknęły w buforze cpipe. Ale sam cpipe nie zobaczy więcej danych wejściowych
zanim program nie odpowie.
Aby to obejść, spróbuj użyć -ngr. Podczas wywoływania odczytu cpipe jest wtedy spełniany jako
jak tylko dostanie co najmniej jeden bajt. Zamiast wypełniać bufor, przestaje czytać i
zapisuje to, co dostało na wyjście. Należy jednak pamiętać, że pomiary przepustowości będą:
być mniej dokładne, jeśli liczba bajtów przesyłanych w jednej parze odczytu/zapisu staje się mała,
ponieważ cpipe poświęci relatywnie więcej czasu na pracę nad każdym bajtem.
Ograniczenie Wydajność
Jeśli limit przepustowości jest określony z opcją -s, potok Połączenia śpisz(3) pomiędzy
kopiowanie buforów, tym samym sztucznie wydłużając czas trwania cyklu odczytu/zapisu. Odkąd
na większości systemów istnieje pewien minimalny czas, w którym usleep() śpi, np. 0.01s, to jest
niemożliwe do osiągnięcia wysokich limitów przy małym rozmiarze bufora. W tym przypadku zwiększenie
rozmiar bufora (opcja -b) może pomóc. Należy jednak pamiętać, że ogranicza to przepustowość
tylko średnio. Każdy pojedynczy bufor jest kopiowany tak szybko, jak to możliwe.
PRZYKŁAD
Komenda
tar CCf / - usr | cpipe -vr -vw -vt > /dev/null
daje wynik taki jak
...
w: 19.541 ms przy 6.4 MB/s (średnio 4.7 MB/s) 2.0 MB
wyjście: 0.004 ms przy 30.5 GB/s (średnio 27.1 GB/s) 2.0 MB
do: 19.865 ms przy 6.3 MB/s (średnio 4.6 MB/s) 2.0 MB
...
Kurs drugim kolumna pokazuje czas potrzebny do obsłużenia jednego bufora danych (domyślnie 128kB).
Wywołanie odczytu zajęło 19.541 ms, wywołanie zapisu do /dev/null zajęło zaledwie 0.004 ms, a od
od początku odczytu do końca zapisu, zajęło to 19.865ms.
Kurs Dopiero kolumna pokazuje wynik dzielenia rozmiaru bufora (domyślnie 128kB) przez
razy w pierwszej kolumnie.
Kurs trzeci kolumna zawiera średnią ze wszystkich zmierzonych wartości od początku
program.
Wreszcie, trwać kolumna pokazuje całkowitą liczbę przesłanych bajtów, co oczywiście jest
to samo do czytania i pisania.
Korzystaj z cpipe online za pomocą usług onworks.net