ນີ້ແມ່ນຄໍາສັ່ງ cpipe ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
cpipe - ຄັດລອກ stdin ໄປ stdout ໃນຂະນະທີ່ນັບ bytes ແລະການລາຍງານຄວາມຄືບຫນ້າ
ສະຫຼຸບສັງລວມ
cpipe [-b bsize] [-vt] [-vr] [-vw] [-ngr] [-s ຄວາມໄວ]
OPTIONS
-b ຂະຫນາດ buffer ໃນ kB,
1 ຄ່າ int ລະຫວ່າງ 1 ແລະ oo.
ຄ່າເລີ່ມຕົ້ນ: `128'
-vt ສະແດງຜ່ານ.
-vr ສະແດງເວລາອ່ານ.
-vw ສະແດງເວລາຂຽນ.
-ngr ບໍ່ greedy ອ່ານ. ຢ່າບັງຄັບໃຊ້ buffer ເຕັມທີ່ກ່ຽວກັບການອ່ານກ່ອນທີ່ຈະເລີ່ມຂຽນ.
-s ການຈໍາກັດຄວາມໄວການຜະລິດໃນ kB/s,
1 ຄ່າສອງເທົ່າລະຫວ່າງ 1 ແລະ oo.
ລາຍລະອຽດ
Cpipe ສຳເນົາວັດສະດຸປ້ອນມາດຕະຖານຂອງມັນໃຫ້ກັບຜົນຜະລິດມາດຕະຖານຂອງມັນ ໃນຂະນະທີ່ວັດແທກເວລາທີ່ມັນໃຊ້
ເພື່ອອ່ານ input buffer ແລະຂຽນ output buffer. ຖ້າຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ -vx ທາງເລືອກແມ່ນ
ໃຫ້, ສະຖິຕິຂອງ throughput ສະເລ່ຍແລະຈໍານວນທັງຫມົດຂອງ bytes ຄັດລອກໄດ້ຖືກພິມອອກ
ກັບຜົນໄດ້ຮັບຄວາມຜິດພາດມາດຕະຖານ.
ບໍ່ ຄວາມໂລບມາກ ອ່ານ
ໂດຍປົກກະຕິ, cpipe ເຮັດດີທີ່ສຸດເພື່ອຕື່ມຂໍ້ມູນໃສ່ buffer ຂອງມັນທັງຫມົດ (ທາງເລືອກ -b) ກ່ອນທີ່ຈະເລີ່ມຕົ້ນ
ການຂຽນ. ຢ່າງໃດກໍຕາມ, ໃນບາງສະຖານະການ, ຕົວຢ່າງ: ຖ້າທ່ານສົນທະນາກັບໂຄງການໂຕ້ຕອບຜ່ານ cpipe,
ນີ້ຂັດຂວາງການສື່ສານ: ໂຄງການກ່າວວ່າລໍຖ້າການປ້ອນຂໍ້ມູນທີ່ມັນບໍ່ເຄີຍເຫັນ,
ເນື່ອງຈາກວ່າການປ້ອນຂໍ້ມູນຕິດຢູ່ໃນ buffer ຂອງ cpipe. ແຕ່ cpipe ຕົວຂອງມັນເອງຈະບໍ່ເຫັນການປ້ອນຂໍ້ມູນເພີ່ມເຕີມ
ກ່ອນທີ່ໂຄງການຈະບໍ່ຕອບສະຫນອງ.
ເພື່ອເຂົ້າຫາມັນ, ລອງໃຊ້ - ນ. ເມື່ອອອກການໂທອ່ານ, cpipe ແມ່ນພໍໃຈຫຼັງຈາກນັ້ນ
ທັນທີທີ່ມັນໄດ້ຮັບຢ່າງຫນ້ອຍຫນຶ່ງ byte. ແທນທີ່ຈະຕື່ມ buffer, ມັນຢຸດເຊົາການອ່ານແລະ
ຂຽນອັນໃດກໍໄດ້ທີ່ມັນໄດ້ຮັບກັບຜົນຜະລິດ. ໃຫ້ສັງເກດວ່າ, ຢ່າງໃດກໍຕາມ, ວ່າການວັດແທກ throughput ຈະ
ໜ້ອຍລົງ ຖ້າຈຳນວນຂອງໄບຕ໌ທີ່ໂອນໃນຄູ່ອ່ານ/ຂຽນ ກາຍເປັນນ້ອຍ,
ເນື່ອງຈາກວ່າ cpipe ຈະໃຊ້ເວລາເຮັດວຽກຂ້ອນຂ້າງຫຼາຍໃນທຸກໆ byte.
ຈຳ ກັດ ຜ່ານໂດຍຜ່ານ
ຖ້າກໍານົດຂອບເຂດຈໍາກັດຜ່ານທາງເລືອກ -s, cpipe ໂທ ນອນຫລັບ(3) ໃນລະຫວ່າງ
ການຄັດລອກ buffers, ດັ່ງນັ້ນການຂະຫຍາຍໄລຍະເວລາຂອງວົງຈອນການອ່ານ / ຂຽນ. ນັບຕັ້ງແຕ່
ໃນລະບົບສ່ວນໃຫຍ່ມີເວລາຕໍ່າສຸດທີ່ແນ່ນອນເວລານອນ () ນອນ, ເຊັ່ນ: 0.01s, ມັນແມ່ນ.
ເປັນໄປບໍ່ໄດ້ທີ່ຈະສາມາດບັນລຸຂອບເຂດຈໍາກັດສູງທີ່ມີຂະຫນາດ buffer ຂະຫນາດນ້ອຍ. ໃນກໍລະນີດັ່ງກ່າວນີ້, ເພີ່ມຂຶ້ນ
ຂະຫນາດ buffer (ທາງເລືອກ -b) ອາດຈະຊ່ວຍໄດ້. ຢ່າງໃດກໍ່ຕາມ, ຈົ່ງຈື່ໄວ້ວ່ານີ້ຈໍາກັດການສົ່ງຜ່ານ
ພຽງແຕ່ໂດຍສະເລ່ຍ. ທຸກໆ buffer ດຽວຈະຖືກຄັດລອກໄວເທົ່າທີ່ຈະໄວໄດ້.
EXAMPLE
ຄໍາສັ່ງ
tar cCf / - usr | cpipe -vr -vw -vt > /dev/null
ຜົນໄດ້ຮັບໃນຜົນໄດ້ຮັບຄ້າຍຄື
...
ໃນ: 19.541ms ທີ່ 6.4MB/s (4.7MB/s avg) 2.0MB
ອອກ: 0.004ms ທີ່ 30.5GB/s (27.1GB/s avg) 2.0MB
ຜ່ານ: 19.865ms ທີ່ 6.3MB/s (4.6MB/s avg) 2.0MB
...
ໄດ້ ຄັ້ງທໍາອິດ ຖັນ ສະແດງໃຫ້ເຫັນເວລາທີ່ມັນໃຊ້ເວລາເພື່ອຈັດການຫນຶ່ງ buffer ຂອງຂໍ້ມູນ (128kB ໂດຍຄ່າເລີ່ມຕົ້ນ).
ການອ່ານການໂທໄດ້ໃຊ້ເວລາ 19.541ms, ການຂຽນການໂທໄປຫາ /dev/null ໃຊ້ເວລາພຽງແຕ່ 0.004ms ແລະຈາກ
ເລີ່ມການອ່ານຈົນຈົບການຂຽນ, ມັນໃຊ້ເວລາ 19.865ms.
ໄດ້ ຄັ້ງທີສອງ ຖັນ ສະແດງໃຫ້ເຫັນຜົນໄດ້ຮັບຂອງການແບ່ງປັນຂະຫນາດ buffer (128kB ໂດຍເລີ່ມຕົ້ນ) ໂດຍ
ເທື່ອໃນຖັນທຳອິດ.
ໄດ້ ທີສາມ ຖັນ ມີຄ່າສະເລ່ຍຫຼາຍກວ່າຄ່າທີ່ວັດແທກໄດ້ຈາກການເລີ່ມຕົ້ນຂອງ
ໂຄງການ.
ສຸດທ້າຍ, ໄດ້ ສຸດທ້າຍ ຖັນ ສະແດງໃຫ້ເຫັນຈໍານວນທັງຫມົດຂອງ bytes ທີ່ຖືກໂອນ, ເຊິ່ງແນ່ນອນ
ດຽວກັນສໍາລັບການອ່ານແລະການຂຽນ.
ໃຊ້ cpipe ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net