Почему Firefox и другие браузеры работают противоположно при вычислении того, какое число больше?

Два дня назад, когда я нашел jsperf.com , в котором есть коллекция многих тестов производительности javascript, я просмотрел несколько тестов.

Одним из тестов был this , который сравнивает Math.min (a, b) и a . Когда я запустил этот тест в Google Chrome, оказалось, что a намного быстрее, чем Math.min (a, b) (сначала в Chrome 14 один - 53,661,381 операций в секунду , а второй - 419,830,711 операций в секунду ). Другие веб-браузеры дают аналогичные результаты.

Однако в Firefox результат обратный. Math.min (a, b) намного быстрее, чем a ! Первый - 374 219 869 операций в секунду , а второй - 79 490 749 операций в секунду в Firefox 6.

enter image description here

Когда я разместил это в Facebook, кто-то сказал: «Поскольку Firefox является открытым исходным кодом. проект, разработчики оптимизировали Math.min , но Google Chrome этого не сделал, поскольку Google Chrome является всего лишь модификацией Chromium ", но (кроме этого приведенное выше утверждение не совсем верно) это не имеет смысла, потому что не объясняет причину, по которой Google Chrome a и Firefox Math.min (a, b) работают с одинаковой скоростью, а Google Chrome Math .min (a, b) и Firefox a работают с одинаковой скоростью, потому что если Firefox быстрее, чем Google Chrome, то Google Chrome Math.min (a, б) должен быть намного медленнее, чем Firefox a .

Резюме:

  1. В других браузерах a быстрее, чем Math.min (a, b) .
  2. Однако в Firefox Math.min (a, b) быстрее, чем a .
  3. Поскольку скорость Math.min (a, b) в Firefox ≒ скорость a в Google Chrome и скорость a в Firefox ≒ скорость Math.min (a, b) в Google Chrome, «Firefox работает медленно» или «Firefox работает быстро» не может быть причиной .

Есть ли причина, почему (как) это происходит?

9
задан JiminP 7 September 2011 в 10:54
поделиться