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

Сообщение Re[30]: Реальная производительность WebAssembly? от 22.09.2017 18:59

Изменено 22.09.2017 19:01 Serginio1

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

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

internal unsafe struct TestStruct
    {
        public string id;
        public string value;
        private static readonly Random random = new Random();

        public void Init()
        {
          
            id = GenerateRandomNumber();
            value = GenerateRandomNumber();

        }

        public override string ToString() => id;

        private static string GenerateRandomNumber()
        {
            var buffer = stackalloc char[11];
            int num = random.Next(100_000_000);
            var p = buffer;
            *p++ = '0';
            *p++ = '0';
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p = (char)('0' + num % 10);
            return new string(buffer);
        }
    }


ну установка

vals[j].Init();
Re[30]: Реальная производительность WebAssembly?
Здравствуйте, alexzzzz, Вы писали:

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

internal unsafe struct TestStruct
    {
        public string id;
        public string value;
        private static readonly Random random = new Random();

        public void Init()
        {
          
            id = GenerateRandomNumber();
            value = GenerateRandomNumber();

        }

        public override string ToString() => id;

        private static string GenerateRandomNumber()
        {
            var buffer = stackalloc char[11];
            int num = random.Next(100_000_000);
            var p = buffer;
            *p++ = '0';
            *p++ = '0';
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p++ = (char)('0' + num % 10); num /= 10;
            *p = (char)('0' + num % 10);
            return new string(buffer);
        }
    }


ну установка

vals[j].Init();


Ну и еще попробовать Net Native
http://rsdn.org/forum/dotnet/6738556.1
Автор: Serginio1
Дата: 28.03.17