System.nanoTime () относится к произвольному и неопределенному моменту времени.Из того, что я наблюдал, похоже, это связано с временем работы компьютера.
Это сильно затрудняет сравнение nanoTime на двух машинах.
timeshift = (t3 + t1) / 2 - t2; // note the + instead of -
Можно использовать формулу, которую вы использовалиПриблизительно разница между двумя машинами, но это может показать огромную разницу.Один из способов обойти это - выполнить это 1000 раз и взять среднее значение или медиану, что давало мне стабильный результат в прошлом.
Эта цифра должна регулярно обновляться, так как даже температура может ускориться илизамедлить нано таймер.
Примечание. Удивительно трудно удерживать две машины с точностью до миллисекунды.;)