JS. Откуда такая разница в скорости?
От: Codealot Земля  
Дата: 08.06.24 18:27
Оценка: 6 (1)
Запускаю код в хроме.

4999999950000000
1: 320.7000000476837
4999999950000000
2: 1602.199999988079


Код практически тот же. Разница в 5 раз. Какого хрена?

        class BaseClass
        {
            constructor()
            {
                this.Value = BaseClass.Counter++;
            }

            TestMethod()
            {
                return this.Value;
            }

            static Counter = 0;
        }

        var func = function()
        {
            var sum = 0;
            for (var i = 0; i < 100_000_000; i++)
            {
                var obj = new BaseClass();
                var val = obj.TestMethod();
                sum += val;
            }
            console.log(sum);
        };

        {
            var watch = performance.now();

            func();
            
            var time = performance.now() - watch;
            console.log(`1: ${time}`);
        }

        BaseClass.Counter = 0;

        {
            var watch = performance.now();

            var sum = 0;
            for (var i = 0; i < 100_000_000; i++)
            {
                var obj = new BaseClass();
                var val = obj.TestMethod();
                sum += val;
            }
            console.log(sum);

            var time = performance.now() - watch;
            console.log(`1: ${time}`);
        }
Ад пуст, все бесы здесь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.