LINUX.ORG.RU

История изменений

Исправление mydibyje, (текущая версия) :

Это на первом прогоне, прогнал несколько раз, результаты ниже в миллисек. Получается ФФ правильнее обрабатывает short-circuit evaluation, чем Хром.
Конечно, как заметили в начале темы, хотелось бы увидеть выхлоп байткода от Ignition и последующий маш.код от Turbofan по этому куску, но не знаю как. 🤷‍♂️

function aA() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'android' || ab === 'Android';};
  console.time("ms");
  for(let i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) aA();

function Aa() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'Android' || ab === 'android';};
  console.time("ms");
  for(var i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) Aa();
Chrome AaChrome aAFirefox AaFirefox aA
1.201450710191022
2.427851833154359
3.25325333194324
4.25125233024323
5.25325433114340
6.25125433024429
7.25425733134377
8.25226933014335
9.25325933004321
10.25125733134314

Исправление mydibyje, :

Это на первом прогоне, прогнал несколько раз, результаты ниже в миллисек. Получается ФФ правильнее обрабатывает short-circuit evaluation, чем Хром.
Конечно, как заметили в начале темы, хотелось бы увидеть выхлоп байткода от Ignition и последующий маш.код от Turbofan по этому куску, но не знаю как. 🤷‍♂️

function aA() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'android' || ab === 'Android';};
  console.time("ms");
  for(let i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) aA();

function Aa() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'Android' || ab === 'android';};
  console.time("ms");
  for(var i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) Aa();
Chrome AaChrome aAFirefox AaFirefox aA
201450710191022
427851833154359
25325333194324
25125233024323
25325433114340
25125433024429
25425733134377
25226933014335
25325933004321
25125733134314

Исходная версия mydibyje, :

Это на первом прогоне, прогнал несколько раз, результаты ниже. Получается ФФ правильнее обрабатывает short-circuit evaluation, чем Хром.
Конечно, как заметили в начале темы, хотелось бы увидеть выхлоп байткода от Ignition и последующий маш.код от Turbofan по этому куску, но не знаю как. 🤷‍♂️

function aA() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'android' || ab === 'Android';};
  console.time("ms");
  for(let i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) aA();

function Aa() {
  const a = 'Android';
  const getA = (ab) => {return ab === 'Android' || ab === 'android';};
  console.time("ms");
  for(var i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("ms");
}
for(let i = 0; i < 10; i++) Aa();
Chrome AaChrome aAFirefox AaFirefox aA
201450710191022
427851833154359
25325333194324
25125233024323
25325433114340
25125433024429
25425733134377
25226933014335
25325933004321
25125733134314