Questo è il comando cpipe che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
cpipe - copia stdin su stdout mentre conta i byte e segnala i progressi
SINOSSI
pipa [-b bsize] [-vt] [-vr] [-vw] [-ngr] [-s velocità]
VERSIONI
-b dimensione del buffer in kB,
1 Int valore compreso tra 1 e oo.
Predefinito: "128"
-vt mostra la velocità effettiva.
-vr mostra i tempi di lettura.
-vw mostra i tempi di scrittura.
-ngr lettura non golosa. Non imporre un buffer completo in lettura prima di iniziare a scrivere.
-s limite di velocità di trasmissione in kB/s,
1 Doppio valore compreso tra 1 e oo.
DESCRIZIONE
Pipa copia il suo input standard nel suo output standard misurando il tempo necessario
per leggere un buffer di input e scrivere un buffer di output. Se uno o più dei -vx opzioni è
dato, vengono stampate le statistiche del throughput medio e la quantità totale di byte copiati
all'output dell'errore standard.
No Avido Leggi
Normalmente, cpipe fa del suo meglio per riempire completamente il suo buffer (opzione -b) prima che inizi
scrivere. Tuttavia, in alcune situazioni, ad esempio se parli con un programma interattivo tramite cpipe,
questo blocca la comunicazione: detto programma attende un input che non vedrà mai,
perché l'input è bloccato nel buffer di cpipe. Ma cpipe stesso non vedrà più input
prima che il programma non risponda.
Per aggirare questo problema, prova a usare -ngr. Quando si emette una chiamata di lettura, cpipe viene quindi soddisfatto come
non appena ottiene almeno un byte. Invece di riempire il buffer, smette di leggere e
scrive tutto ciò che ha nell'output. Si noti, tuttavia, che le misurazioni della produttività saranno
essere meno esatto se il numero di byte trasferiti in una coppia di lettura/scrittura diventa piccolo,
perché cpipe impiegherà relativamente più tempo a lavorare su ogni byte.
Limitativo Throughput
Se viene specificato un limite di throughput con l'opzione -s, pipa chiamate dormi(3) in mezzo
buffer di copia, estendendo così artificialmente la durata di un ciclo di lettura/scrittura. Da quando
sulla maggior parte dei sistemi c'è un certo tempo minimo in cui usleep() dorme, ad esempio 0.01s, è
impossibile raggiungere limiti elevati con una piccola dimensione del buffer. In questo caso aumentando il
dimensione del buffer (opzione -b) potrebbe aiutare. Tuttavia, tieni presente che questo limita il throughput
solo nella media. Ogni singolo buffer viene copiato il più velocemente possibile.
ESEMPIO
Il comando
tar cCf / - usr | cpipe -vr -vw -vt > /dev/null
si traduce in un output come
...
in: 19.541 ms a 6.4 MB/s (4.7 MB/s in media) 2.0 MB
in uscita: 0.004 ms a 30.5 GB/s ( 27.1 GB/s in media) 2.0 MB
fino a: 19.865 ms a 6.3 MB/s (4.6 MB/s in media) 2.0 MB
...
Le prima di tutto colonna mostra i tempi necessari per gestire un buffer di dati (128kB per impostazione predefinita).
La read-call ha impiegato 19.541ms, la write-call a /dev/null ha impiegato solo 0.004ms e dal
dall'inizio della lettura alla fine della scrittura, ci sono voluti 19.865 ms.
Le secondo colonna mostra il risultato della divisione della dimensione del buffer (128kB di default) per il
volte nella prima colonna.
Le Terzo colonna contiene la media su tutti i valori misurati dall'inizio del
.
Infine, il ultimo colonna mostra il numero totale di byte trasferiti, che è ovviamente
lo stesso per leggere e scrivere.
Usa cpipe online usando i servizi onworks.net