LINUX.ORG.RU

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

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

зарефакторить

Экак вас...

---

Похоже я уже начал понимать это игру )

1. Объект на 'android' в версии 'Aa' скорее всего потому и не создается, что поскольку функция кончается на первом операнде, то до второго и не доходит.

2. Там дальше пояснения о причинах деоптимизации Insufficient type feedback for compare operation - видимо опять же потому, что функция не видит 'android' (ибо кончается раньше) и решает, что не знает тип переменной.

Тут вроде бы есть противоречие... Что смущает.

Но вот такая фигня (эдакое передергивание типа):

const getAa1 = (b) => {bb = b; b = 'android'; b = bb; return b === 'Android' || b === 'android';};
Совершенно точно делает версию Аа равной по скорости версии аА.

Итого - из консоли MSEdge:

(() => {
  const a = 'Android';
  const getA = (ab) => {return ab === 'Android' || ab === 'android';};
  console.time("engine");
  for(var i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("engine");
})();
VM44:6 engine: 1203.757080078125 ms
(() => {
  const a = 'Android';
  const getA = (ab) => {bb = ab; ab = 'android'; ab = bb; return ab === 'Android' || ab === 'android';};
  console.time("engine");
  for(var i = 0; i < 1000 * 1000 * 1000; i++) {getA(a);}
  console.timeEnd("engine");
})();
VM131:6 engine: 388.130859375 ms

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

зарефакторить

Экак вас...

---

Похоже я уже начал понимать это игру )

1. Объект на 'android' в версии 'Aa' скорее всего потому и не создается, что поскольку функция кончается на первом операнде, то до второго и не доходит.

2. Там дальше пояснения о причинах деоптимизации Insufficient type feedback for compare operation - видимо опять же потому, что функция не видит 'android' (ибо кончается раньше) и решает, что не знает тип переменной.

Тут вроде бы есть противоречие... Что смущает.

Но вот такая фигня (эдакое передергивание типа):

const getAa1 = (b) => {bb = b; b = 'android'; b = bb; return b === 'Android' || b === 'android';};
Совершенно точно делает версию Аа равной по скорости версии аА.

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

зарефакторить

Экак вас...

Похоже я уже начал понимать это игру )

1. Объект на 'android' в версии 'Aa' скорее всего потому и не создается, что поскольку функция кончается на первом операнде, то второго и не доходит.

2. Там дальше пояснения о причинах деоптимизации Insufficient type feedback for compare operation - видимо опять же потому, что функция не видит 'android' (ибо кончается раньше) решает, что не знает тип переменной.

Тут вроде бы есть противоречие... Что смущает.

Но вот такая фигня (эдакое передергивание типа):

const getAa1 = (b) => {bb = b; b = 'android'; b = bb; return b === 'Android' || b === 'android';};
Совершенно точно делает версию Аа равной по скорости версии аА.