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 realwaktu eksekusi dengan menggunakan string di sini lebih besar daripada menggunakan pipa, tetapi jumlah user+ syskali 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?

statis
sumber