Информация об изменениях

Сообщение Re[11]: JS. Откуда такая разница в скорости? от 10.06.2024 20:29

Изменено 10.06.2024 20:33 rFLY

Re[11]: JS. Откуда такая разница в скорости?
Здравствуйте, 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

Re[11]: JS. Откуда такая разница в скорости?
Здравствуйте, 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