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

Сообщение Re[19]: Реальная производительность WebAssembly? от 18.09.2017 23:16

Изменено 18.09.2017 23:22 alexzzzz

Ещё немного ускорил

Re[19]: Реальная производительность WebAssembly?
Здравствуйте, alexzzzz, Вы писали:

JS

Init: 722.34701 msecs
Init: 731.901343 msecs
Init: 723.923362 msecs
Init: 723.1501920000001 msecs
Init: 727.1162879999999 msecs

  C#
using System;
using System.Diagnostics;
using System.Linq;

namespace QuickSort
{
    class Program
    {
        static void Main(string[] args)
        {
            var watch = new Stopwatch();
            for (int i = 0; i < 5; i++)
            {
                watch.Restart();
                var vals = Enumerable.Range(0, 1000 * 1000).Select(x => new TestClass()).ToArray();
                watch.Stop();
                Console.WriteLine("Total secs: " + watch.Elapsed.TotalSeconds);
            }
            Console.WriteLine($"GC: {GC.CollectionCount(0)} {GC.CollectionCount(1)} {GC.CollectionCount(2)}");
            Console.ReadLine();
        }
    }

    class TestClass
    {
        public string Id = CreateGuid();
        public string Value = CreateGuid();
        static Random gen = new Random();

        static string CreateGuid()
        {
            return ((int)Math.Floor(gen.NextDouble() * 1e8)).ToString("0000000000");
        }
    }
}

Total secs: 0,6072915
Total secs: 0,7156681
Total secs: 0,7269838
Total secs: 0,7212164
Total secs: 0,7370409
GC: 116 62 16
Re[19]: Реальная производительность WebAssembly?
Здравствуйте, alexzzzz, Вы писали:

JS

Init: 722.34701 msecs
Init: 731.901343 msecs
Init: 723.923362 msecs
Init: 723.1501920000001 msecs
Init: 727.1162879999999 msecs

  C#
using System;
using System.Diagnostics;

namespace QuickSort
{
    class Program
    {
        static void Main(string[] args)
        {
            var watch = new Stopwatch();
            for (int i = 0; i < 5; i++)
            {
                watch.Restart();
                var vals = new TestClass[1000 * 1000];
                for (int j = 0; j < vals.Length; j++)
                {
                    vals[j] = new TestClass();
                }
                watch.Stop();
                Console.WriteLine("Total secs: " + watch.Elapsed.TotalSeconds);
            }
            Console.WriteLine($"GC: {GC.CollectionCount(0)} {GC.CollectionCount(1)} {GC.CollectionCount(2)}");
            Console.ReadLine();
        }
    }

    class TestClass
    {
        public string Id = CreateGuid();
        public string Value = CreateGuid();
        static Random gen = new Random();

        static string CreateGuid()
        {
            return ((int)Math.Floor(gen.NextDouble() * 1e8)).ToString("0000000000");
        }
    }
}

Total secs: 0,5689526
Total secs: 0,6498292
Total secs: 0,6965542
Total secs: 0,6748256
Total secs: 0,6323315
GC: 117 63 16