Хорошо, есть несколько объяснений вашего вопроса после того, как вы отредактировали его, чтобы показать второе выполнение, без аргумента командной строки -x04
.
Первое объяснение, которое я могу придумать, состоит в том, что аргумент -x04
, который @ Abel проделал хорошую работу по документированию здесь , разворачивает настолько большую часть кода, что некоторые основные накладные расходы в цикле исчезают полностью. Скорее всего, некоторый код зацикливания полностью исчезает.
Второе объяснение состоит в том, что команда загружает информацию с диска или подобного медленного носителя, и второе выполнение фактически является первым, когда ей фактически приходилось ждать диск. Во втором выполнении (то, которое вы показываете первым) загружаемые данные уже находятся в кеше, поэтому они просто копируются в память, что намного быстрее.
В любом случае очень странно, что некоторые методы оптимизации и / или кэширования убирают все служебные данные и время выполнения кода, поэтому, скорее всего, код в первом выполненном вами выполнении занимает меньше времени, чем Точность используемого метода синхронизации. Например, если точность равна 1 мс, общее время выполнения составляет менее 1 мс, поэтому оно выглядит как ноль.