пытались ли вы использовать transform: translate();
для компенсации количества пикселей, которые он будет перемещать вправо. Для получения дополнительной информации о transform translate, вы можете посмотреть по следующей ссылке. https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate
Я думаю, что существует комбинация эффектов здесь:
Во-первых, выполнение той же функции в тестовой обвязке многократно, с теми же данными каждый раз, вероятно, улучшится потому что:
Если данные отличаются для каждого выполнения функции в тестовой обвязке, это могло объяснить, почему закрытие и выполнение тестовой обвязки снова улучшают результаты: данные теперь также будут в дисковом кэше, где это не был первый раз.
И наконец, да, даже если два 'диска' находятся на том же физическом диске, у них будет другая производительность: данные могут быть считаны быстрее с за пределами подложки диска, чем внутренняя часть. Если бы они - различные физические диски, то различие в производительности казалось бы довольно вероятным. Кроме того, один диск может быть более фрагментирован, чем другой, вызывание дольше ищет времена и более медленные скорости передачи данных.
Запуск приложения приносит свой исполняемый файл и другие файлы от жесткого диска в дисковый кэш ОС (в RAM). Если это будет выполнено снова скоро впоследствии, то многие из этих файлов, вероятно, все еще будут в кэше. RAM намного быстрее, чем диск.
И конечно один диск может быть быстрее, чем другой.
Да. Это назвало Своевременную компиляцию. В основном Ваше приложение развертывается как MSIL (промежуточный язык Microsoft) и в первый раз, когда это выполняется, это преобразовывается в собственный код.
Можно всегда выполнять NGen (см. вышеупомянутую статью), или имейте теплое период в сценариях тестирования производительности, куда это пробегает сценарий пару раз перед фактическим сравнительным тестированием производительности.
Кроме того, другие факторы, вероятно, играют роль. Файловая система, кэширующаяся на машине, буферизации недавно используемых данных, и т.д.
Лучше всего запускать несколько тестов (или несколько сотен!) и составляют в среднем через набор, если Вы конкретно не измеряете времена "холодной" начальной загрузки.