Dalam percubaan untuk menjejaki perolehan dan set yang tidak dapat ditandingi untuk lebar platform kunci, arahan Bash dilaksanakan:
<code class="bash">memcached -vv 2>&1 | tee memkeywatch2010098.log 2>&1 | ~/bin/memtracer.py | tee memkeywatchCounts20100908.log</code>
Skrip memtracer, menggunakan stdin, mengalami kelewatan yang ketara dalam pemprosesan disebabkan saiz penimbal stdin. Khususnya, memtracer.py memulakan pemprosesan input hanya selepas saiz fail log perantaraan, memkeywatchYMD.log, melebihi 15-18K.
Untuk menangani isu tersebut , python menyediakan kaedah yang berkesan untuk mengalih keluar penimbalan daripada stdin dan stdout sepenuhnya, membolehkan pemprosesan segera data masuk. Dengan menggunakan bendera -u, anda boleh menghapuskan had saiz penimbal dan mempertingkatkan masa tindak balas skrip anda dengan ketara.
<code class="bash">python -u memkeywatchCounts20100908.log</code>
Sebagai alternatif, jika menyahbuffer menggunakan - bendera u tidak memenuhi keperluan khusus anda, anda boleh mengubah suai penimbalan objek fail sedia ada menggunakan os.fdopen. Pendekatan ini membolehkan anda mencipta objek fail baharu dengan deskriptor fail asas yang sama seperti yang sedia ada, tetapi dengan penimbalan yang berbeza. Contohnya:
<code class="python">import os import sys newin = os.fdopen(sys.stdin.fileno(), 'r', 100)</code>
Dengan pengubahsuaian ini, newin terikat pada objek fail yang membaca deskriptor fail yang sama seperti input standard, tetapi dengan saiz penimbal hanya 100 bait. Pendekatan ini menawarkan kawalan yang lebih berbutir ke atas gelagat penimbalan tetapi memerlukan ujian tambahan untuk keserasian merentas platform.
Operasi stdin atau stdout tanpa buffer boleh mengurangkan kependaman dan meningkatkan prestasi secara mendadak, terutamanya apabila mengendalikan jumlah data yang besar secara berterusan. Walau bagaimanapun, ambil perhatian bahawa mengalih keluar penimbalan juga boleh memperkenalkan cabaran lain, seperti peningkatan panggilan sistem dan interaksi kernel, yang mungkin perlu ditangani dalam kes penggunaan tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Mengurangkan Saiz Penampan dalam Sys.stdin untuk Peningkatan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!