Üzgünüz, bunu yorum olarak eklemek için itibar yok. Yani tamamlayıcı bir cevap olarak gider.
Eğer arayacak ne sıklıkta bağlı olarak clock_gettime()
, sadece akılda tutmalı bazı Linux eklendiğinde sadece kötüleşti - VDSO Linux tarafından sağlanmaktadır "saatlerin" (yani tüm birinin yükü bir sistem çağrısı gerektirmeyen Spectre benzeri saldırılara karşı korunmak için savunmalar).
İken clock_gettime(CLOCK_MONOTONIC,...)
, clock_gettime(CLOCK_REALTIME,...)
ve gettimeofday()
her zaman (VDSO tarafından hızlandırılmış) son derece hızlı olacak, bu değil , mesela CLOCK_MONOTONIC_RAW veya diğer POSIX saatlerin herhangi biri için geçerlidir.
Bu, çekirdek sürümü ve mimari ile değişebilir.
Çoğu programın buna dikkat etmesi gerekmese de, VDSO tarafından hızlandırılan saatlerde gecikme ani artışları olabilir: çekirdek paylaşılan bellek alanını saat sayaçlarıyla güncellerken onlara doğru vurursanız, bitirmek için çekirdek.
İşte "kanıt" (GitHub, botları kernel.org'dan uzak tutmak için):
https://github.com/torvalds/linux/commit/2aae950b21e4bc789d1fc6668faf67e8748300b7