Re[11]: JS. Откуда такая разница в скорости?
От: rFLY  
Дата: 10.06.24 20:29
Оценка: 18 (1)
Здравствуйте, Pauel, Вы писали:

P>Проверил, похоже это всё property lookup

P>
P>globalThis.sum += val
P>


А если локальную переменную заменить на локальный объект (let sum = 0 на let o = {sum: 0})
//let sum = 0;
let o = {sum: 0};
for (let i = 0; i < 100_000_000; i++)
{
    let obj = new BaseClass();
    let val = obj.TestMethod();
    //sum += val;
    o.sum += val;
}

то отработает еще на 120 быстрее (интел, эдж последней версии)

с let sum = 0
4999999950000000
1: 408.7000002861023
4999999950000000
2: 390.7999997138977

против

с let o = {sum: 0};
4999999950000000
1: 409.40000009536743
4999999950000000
2: 271.69999980926514

Отредактировано 10.06.2024 20:33 rFLY . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.