Saya menjalankan time
beberapa perintah saya. Sekarang untuk mengukur rata-rata, saya ingin menjalankan dan mengatur waktu perintah saya beberapa kali, dan mendapatkan hasilnya dengan rata-rata yang dihitung dan standar deviasi. Hasilnya akan seperti:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
Apakah ada alat UNIX untuk ini? Apakah GNU / Linux memilikinya?
performance
time
benchmark
time-utility
Didier Trosset
sumber
sumber
os.system()
, menyebabkan biaya panggilan / membuat shell dengan setiap perintah. Mungkin lebih baik menggunakan subprocess.call ()Ini bukan alat UNIX atau GNU / Linux, tetapi Anda bisa dengan nyaman menggunakan lingkungan perangkat lunak R untuk komputasi statistik untuk ini. (Namun, saya tidak dapat menemukan sesuatu yang lebih spesifik untuk tugas Anda .)
Mengedit Bagaimana aku bisa meragukannya, ada tentu saja adalah paket patokan untuk
R
:rbenchmark
. Ini ternyata membungkussystem.time()
yang juga bisa Anda gunakan langsung. Atau lihat ini, pasangan fungsi stopwatch sederhana. Juga lihat "Menjalankan perintah sistem" @Rosetta Code (atau tidak, itusystem("command")
.)Sunting2 Saya baru saja melihat pertanyaan ini, "Mengukur waktu dalam skrip" di kolom "Terkait" yang tepat, ini dapat digunakan juga, yaitu luangkan waktu, lakukan for-loop (
N
kali), luangkan waktu lagi, hitung waktupan, bagi denganN
. (Lebih mudah lagi, cobatime ( for-loop )
, parsing outputnya, bagi denganN
).sumber
Anda dapat menggunakan
R
dengan cepat menghitung nilai rata-rata, standar-deviasi dan lainnya yang menarik.Misalnya, Anda dapat menggunakan waktu GNU untuk menulis beberapa pengukuran runtime ke dalam file CSV:
Kemudian Anda dapat menghasilkan nilai dengan R seperti ini:
Saya telah membuat skrip benchmark kecil yang juga melakukan pencetakan cantik dari output R, misalnya:
sumber
Opsi 1 - sqlite :
buat tabel sederhana dengan kolom perintah dan waktu, dan lihat dengan perhitungan agregasi yang tepat . Setelah penghitungan waktu, tambahkan baris ke tabel.
Keuntungan: lebih mudah untuk mendefinisikan tabel dibandingkan dengan solusi 2.
Kekurangan: Anda perlu (kan?) Peduli tentang penyimpanan data.
Opsi 2 - rrdtool :
Tentukan file basis data rrd, definisi data, dan fungsi agregasi. Setelah penghitungan waktu, masukkan basis data dengan
rrdtool update ...
.Keuntungan: Anda dapat dengan mudah menghasilkan grafik
rrdtool graph ...
. Tidak ada masalah penyimpanan data (database round robin).Kekurangan: sedikit lebih sulit untuk mendefinisikan database rrd dibandingkan dengan tabel SQL sederhana / tampilan
sumber
Hyperfine adalah pilihan lain.
Penggunaan sampel:
Lihat pertanyaan terkait .
sumber