Це команда cpipe, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
cpipe - копіювати stdin в стандартний вихід під час підрахунку байтів і звітування про прогрес
СИНТАКСИС
cpipe [-b bsize] [-vt] [-vr] [-vw] [-ngr] [-s швидкість]
ВАРІАНТИ
-b розмір буфера в кБ,
1 Значення Int від 1 до oo.
За замовчуванням: "128"
-vt показати пропускну здатність.
-vr показувати час читання.
-vw показати час запису.
-ngr не жадібне читання. Не застосовуйте повний буфер під час читання, перш ніж почати запис.
-s обмеження швидкості пропускної здатності в кБ/с,
1 Подвійне значення між 1 та oo.
ОПИС
Cpipe копіює свій стандартний вхід у свій стандартний вихід, вимірюючи час
щоб читати вхідний буфер і записувати вихідний буфер. Якщо один або кілька з -vx варіанти є
наведено, виводиться статистика середньої пропускної здатності та загальної кількості скопійованих байтів
до стандартного виведення помилки.
Чи не Жадібний Читати
Зазвичай cpipe робить все можливе, щоб повністю заповнити свій буфер (опція -b) перед його початком
написання. Однак у деяких ситуаціях, наприклад, якщо ви спілкуєтеся з інтерактивною програмою через cpipe,
це блокує зв'язок: зазначена програма чекає введення, яке вона ніколи не побачить,
оскільки вхідні дані застрягли в буфері cpipe. Але сам cpipe не побачить більше вхідних даних
перед тим, як програма не відповідає.
Щоб обійти це, спробуйте скористатися -ngr. При виконанні виклику read, cpipe виконується як
як тільки він отримає хоча б один байт. Замість того, щоб заповнити буфер, він припиняє читання і
записує все, що потрапило на вихід. Зауважте, однак, що вимірювання пропускної здатності будуть
бути менш точним, якщо кількість байтів, переданих в одній парі читання/запису, стає малою,
оскільки cpipe витрачатиме відносно більше часу на роботу з кожним байтом.
Обмежуючий Пропускна здатність
Якщо обмеження пропускної здатності вказано за допомогою параметра -s, cpipe дзвінки заснути(3) між ними
копіювання буферів, тим самим штучно подовжуючи тривалість циклу читання/запису. Так як
у більшості систем існує певний мінімальний час, що час сну usleep() становить, наприклад, 0.01с, це
неможливо досягти високих меж при невеликому розмірі буфера. У цьому випадку збільшення
Розмір буфера (опція -b) може допомогти. Однак майте на увазі, що це обмежує пропускну здатність
тільки в середньому. Кожен буфер копіюється якомога швидше.
приклад
Команда
tar cCf / - usr | cpipe -vr -vw -vt > /dev/null
призводить до виходу як
...
через: 19.541 мс при 6.4 МБ/с (у середньому 4.7 МБ/с) 2.0 МБ
вихід: 0.004 мс при 30.5 ГБ/с (у середньому 27.1 ГБ/с) 2.0 МБ
через: 19.865 мс при 6.3 МБ/с (у середньому 4.6 МБ/с) 2.0 МБ
...
Команда перший колонка показує час, необхідний для обробки одного буфера даних (128 КБ за замовчуванням).
Виклик читання зайняв 19.541 мс, виклик запису до /dev/null зайняв лише 0.004 мс, а з
від початку читання до кінця запису знадобилося 19.865 мс.
Команда другий колонка показує результат поділу розміру буфера (128 КБ за замовчуванням) на
разів у першому стовпці.
Команда третій колонка містить середнє значення за всіма виміряними значеннями від початку
програми.
Нарешті, останній колонка показує загальну кількість переданих байтів, що, звичайно, є
те саме для читання та письма.
Використовуйте cpipe онлайн за допомогою служб onworks.net