Masalah:
Apabila menjalankan memtracer skrip pemantauan memcached .py, yang memintas stdin daripada jujukan arahan yang lebih besar, skrip mengalami kependaman dalam menerima input disebabkan saiz penimbal lebih kurang 15-18K.
Soalan:
Bagaimanakah seseorang boleh meminimumkan saiz penimbal untuk sys.stdin untuk meningkatkan tindak balas skrip?
Jawapan:
Python menyediakan dua kaedah yang berkesan untuk mengoptimumkan penimbalan stdin:
Menggunakan Bendera -u:
<code class="bash">python3 -u memtracer.py</code>
Memanfaatkan os.fdopen:
<code class="python">import os newin = os.fdopen(sys.stdin.fileno(), 'r', 100) sys.stdin = newin # This makes newin the standard input from here onwards</code>
Dalam contoh ini, newin diikat pada objek fail yang dibaca daripada FD yang sama dengan input standard tetapi dengan saiz penimbal yang lebih kecil iaitu 100 bait.
Nota bahawa menggunakan os.fdopen memerlukan sedikit berhati-hati, kerana ia mungkin mempunyai isu atau pengehadan khusus platform. Ujian menyeluruh pada semua platform yang berkaitan adalah disyorkan.
Dengan melaksanakan salah satu daripada kaedah ini, saiz penimbal untuk sys.stdin boleh dikurangkan dengan ketara, membolehkan skrip memtracer.py bertindak balas dengan lebih cepat kepada perubahan input dalam memcached senario pemantauan.
Atas ialah kandungan terperinci Cara Mengoptimumkan Saiz Penampan sys.stdin untuk Responsif Skrip Dipertingkat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!