Здравствуйте, 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 байта, собственно как и буква "Ё".