Perhatikan bahwa jawaban apa pun untuk pertanyaan ini akan bergantung pada apa yang sebenarnya dilakukan sistem pada waktu tertentu. Sebagai contoh:
- Penjadwal kernel apa yang Anda gunakan (latensinya berbeda)
- Proses apa yang sedang Anda jalankan (semuanya bersaing untuk waktu, dan penjadwal mungkin tidak memilih proses Anda sedini yang Anda inginkan)
Dan mungkin seribu hal lainnya. Untuk alasan ini, jalankan tes ini sendiri . Perhatikan juga bahwa hal-hal berikut ini bisa salah dalam banyak hal yang halus, karena saya tidak terlalu berpengetahuan tentang mendapatkan kinerja terbaik dari bash
(baik, zsh
sebenarnya, karena itu shell login saya).
Dengan pemikiran ini, saya menemukan cara sederhana untuk menguji ini. Tanggal GNU memiliki cara untuk ditampilkan nanodetik (ya, Anda membacanya dengan benar). Jadi, untuk mendapatkan banyak data, yang perlu Anda lakukan adalah:
get_starting_diff() {
date +%N & date +%N
}
# 5,000 iterations is probably good enough statistically
for iteration in $(seq 1 5000); do
get_starting_diff
done > times
Ini akan (selain mengunyah banyak PID) menghasilkan 10.000 file baris, dengan informasi waktu di dalamnya. Anda kemudian dapat menggunakan skrip Python (v3.4) berikut untuk mendapatkan gambaran tentang perbedaan waktu rata-rata Anda:
def pairwise(iterator):
"Takes an iterator and extracts sequential pairs from it"
pair = []
for item in iterator:
pair.append(item)
if len(pair) == 2:
yield pair
pair = []
diffs = []
with open('times') as data:
for start1, start2 in pairwise(data):
diffs.append(int(start2) - int(start1))
diffs.sort()
median = diffs[len(diffs) // 2]
mean = sum(diffs) / len(diffs)
print("The median difference is", median / 1000000, "milliseconds")
print("The mean difference is", mean / 1000000, "milliseconds")
Pada sistem saya (Ubuntu 13.10, Linux 3.12.0-997-generic), ini memberi saya:
The median difference is 1.077483 milliseconds
The mean difference is 3.680928442211055 milliseconds