-/* Interval between updates to the time reported by time_gettimeofday(), in ms.
- * This should not be adjusted much below 10 ms or so with the current
- * implementation, or too much time will be wasted in signal handlers and calls
- * to time(0). */
-#define TIME_UPDATE_INTERVAL 100
+/* Interval between updates to the reported time, in ms. This should not be
+ * adjusted much below 10 ms or so with the current implementation, or too
+ * much time will be wasted in signal handlers and calls to clock_gettime(). */
+#define TIME_UPDATE_INTERVAL 25
+
+/* True on systems that support a monotonic clock. Compared to just getting
+ * the value of a variable, clock_gettime() is somewhat expensive, even on
+ * systems that try hard to optimize it (such as x86-64 Linux), so it's
+ * worthwhile to minimize calls via caching. */
+#ifndef CACHE_TIME
+#if defined ESX
+#define CACHE_TIME 0
+#else
+#define CACHE_TIME 1
+#endif
+#endif /* ifndef CACHE_TIME */