Зауважте, що будь-яка відповідь на це питання залежатиме від того, що саме система робить у будь-який момент. Наприклад:
- Який планувальник ядер ви використовуєте (їх затримки відрізняються)
- Які процеси ви виконуєте (всі вони змагаються за час, і планувальник може не вибирати, що ви будете процесами раніше, ніж вам хотілося б)
І, мабуть, тисяча інших речей. З цієї причини запустіть цей тест самостійно . Також зауважте, що наступне може помилятися багатьма найтоншими способами, оскільки я не дуже обізнаний у тому, щоб отримати найкращі можливі показники bash
(ну, zsh
строго кажучи, оскільки це моя оболонка для входу).
Маючи це на увазі, я придумав простий спосіб перевірити це. Дата GNU має спосіб відображення наносекунд (так, ви правильно це прочитали). Таким чином, щоб отримати купу даних, все, що вам потрібно зробити, це:
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
Це (окрім жування багатьох PID-файлів) призведе до отримання 10 000 рядкових файлів з інформацією про час. Потім ви можете використовувати наступний скрипт Python (v3.4), щоб отримати уявлення про те, яка середня різниця у часі:
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")
У моїй (Ubuntu 13.10, Linux 3.12.0-997-generic) системі це дає мені:
The median difference is 1.077483 milliseconds
The mean difference is 3.680928442211055 milliseconds