Re[10]: Регресс производительности при переходе с FW 3.5 SP1
От: 4058  
Дата: 16.05.20 19:26
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Ну вот ты сравни и покажи результаты. Казалось бы разницы то быть не должно


using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        IntBench(1000000);
    }

    static void IntBench(int arrSize)
    {
        const int cnt = 100;

        List<int> arr = new List<int>(arrSize);
        for (int j = 0; j < arrSize; j++)
            arr.Add(j);

        int key = arrSize - 1;
        int c = 0;

        var sw = new System.Diagnostics.Stopwatch();
        sw.Start();

        for (int i = 0; i < cnt; i++)
            c += arr.Count(s => s == key);

        double ts = sw.Elapsed.TotalSeconds;
        ulong total = (ulong)arrSize * (ulong)cnt;

        Console.WriteLine("Int ({3}) {0} op / {1:0.000} sec = {2:0}", total, ts, total / ts, arrSize);
    }
}


FW 3.5: Int (1000000) 100000000 op / 0,872 sec = 114699379
FW 4.0: Int (1000000) 100000000 op / 0,990 sec = 101008734
Core31: Int (1000000) 100000000 op / 0,893 sec = 111996104


4>>Поэтому смысл чего-то мерить с использованием кириллицы я не вижу.


S> А ты попробуй, в чем проблема?


Заменил "X" на "Ё", результаты те-же, не понимаю, что должно было изменится, строки в .NET исторически UTF-16 и один символ ASCII в UTF-16 занимает 2 байта, собственно как и буква "Ё".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.