Показать сообщение отдельно
  #15 (permalink)  
Старый 07.08.2019, 16:11
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от рони
какая связь между местом в массиве и скоростью выполнения?
Почему вы это у меня спрашиваете? Вы не понимаете, что написал SuperZen в его коде?

Сообщение от Alexandroppolus
тест создает много объектов в куче, выделяется память. На момент второго теста свободной памяти меньше. Может либо сборщик мусора сработать во время теста, либо менеджер кучи чуть медленнее находит свободные места для новых объектов.
Удивительная подгонка мировоззрения под лживый тест!

SuperZen складывает показания часов... как следует понимать такие результаты, я не знаю. Мне очень жаль, что вам трудно понимать идею измерения отрезка времени.

Сообщение от рони
какая связь между местом в массиве и скоростью выполнения?
Поскольку SuperZen складывает показания часов, то тест находящийся на первом месте естественным образом будет иметь наименьшее показание!

Вот, например, у меня была открыта некоторое время страница с его кодом... Я скопировал код и выполнил в консоли...
Код:
BREAK THE MYTH ;p
size: 100000, iterations 10
tests[0] : 49098279.895
tests[1] : 49100864.53000001
Как следует понимать такие результаты, я не знаю. Оно показывает время с начала загрузки страницы до начала/окончания выполнения одного теста, сложенного с началом/окончанием выполнения второго теста... Что это обозначает, я не знаю!

В посте №11 я указал, как измеряется длительность какого-либо процесса.

рони, если измерять время по методу SuperZen, то получается что первый бегун всегда бежит быстрее, чем все остальные.

рони, Alexandroppolus, вы конечно можете считать сколько угодно меня за идиота... ведь проблема именно в этом, а не в том, что вы якобы не видите, что в том тесте вовсе не измеряется время вычисления!

UPD И на всякий случай код SuperZen, о котором речь...
const obj = (function (size, iterations, tests) {
  console.log('BREAK THE MYTH ;p')
  const array = Array.from({ length: size })
  const iterator = Array.from({ length: iterations })
  const score = iterator.map(iter => tests.map(test => {
    const start = performance.now()
    test(array)
    const end = performance.now()
    return [start, end]
  })).reduce((acc, result) => {
    result.forEach(row => {
      row.forEach((r, i) => {
        acc[i] += r
      })
    })
    return acc
  }, Array(tests.length).fill(0))
  console.log(`size: ${size}, iterations ${iterations}`)
  score.map((s, i) => console.log(`tests[${i}] : ${s}`))
})(
  100000,
  10,
  [
    array => array.map((item, i) => `${i}myth`),
    array => array.map((item, i) => i + 'myth'),
  ],
)
Чтобы он его не поменял и потом не набежали лэймасы и не развели опусы о том, что там всё в порядке, а дескать это мализ во всём виноват...

Последний раз редактировалось Malleys, 07.08.2019 в 16:27. Причина: случай код
Ответить с цитированием