Saya membandingkan waktu eksekusi untuk unix di sini-string dan input data pipa ke bc
:
pipa
time for i in {1..1000}
do
echo "sqrt(5.09)" | bc -q > /dev/null
done
real 0m3.584s
user 0m0.899s
sys 0m2.404s
vs.
di sini-string
time for i in {1..1000}
do
bc -q <<< "sqrt(5.09)" > /dev/null
done
real 0m5.137s
user 0m0.686s
sys 0m2.262s
(nilai-nilai ini rata-rata: berkali-kali diuji)
Jadi real
waktu eksekusi dengan menggunakan string di sini lebih besar daripada menggunakan pipa, tetapi jumlah user
+ sys
kali masih lebih sedikit dalam kasus string di sini seperti yang saya harapkan sebelumnya (gema ... | dieksekusi dalam proses baru, jadi ada overhead eksekusi). Mengapa perilaku pesta aneh seperti itu?