Здравствуйте, Serginio1, Вы писали:
S> Ну ты так и не привел тест с IndexOf.
S> И можешь сравнить тесты "маркентологов". Опровергни...
Это совершенно не то, что обсуждалось в исходном сообщении, но на данной "синтетике" Core всех "порвал":
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
StrBench(1000000);
}
static void StrBench(int arrSize)
{
const int cnt = 10;
List<string> arr = new List<string>(arrSize);
for (int j = 0; j < arrSize; j++)
arr.Add(string.Format("{0}{1}{2}", new string('Ё', 100), BuildKey(j), new string('x', 100)));
string key = arr[arr.Count - 1];
int c = 0;
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int i = 0; i < cnt; i++)
c += arr.IndexOf(key);
double ts = sw.Elapsed.TotalSeconds;
ulong total = (ulong)arrSize * (ulong)cnt;
Console.WriteLine("String ({3}) {0} op / {1:0.000} sec = {2:0}", total, ts, total / ts, arrSize);
}
static string BuildKey(int i)
{
return i.ToString().PadLeft(10, '0');
}
}
FW 3.5: String (1000000) 10000000 op / 0,689 sec = 14503480
FW 4.0: String (1000000) 10000000 op / 0,315 sec = 31732603
Core31: String (1000000) 10000000 op / 0,291 sec = 34337193
Core31 и FW 4.0 почти равны, 3.5 далеко в хвосте ...
Теперь по int-ам:
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
IntBench(1000000);
}
static void IntBench(int arrSize)
{
const int cnt = 1000;
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.IndexOf(key);
double ts = sw.Elapsed.TotalSeconds;
ulong total = (ulong)arrSize * (ulong)cnt;
Console.WriteLine("String ({3}) {0} op / {1:0.000} sec = {2:0}", total, ts, total / ts, arrSize);
}
}
FW 3.5: String (1000000) 1000000000 op / 1,619 sec = 617788936
FW 4.0: String (1000000) 1000000000 op / 0,630 sec = 1586526708
Core31: String (1000000) 1000000000 op / 0,278 sec = 3593765105
Core31 по отношению к FW 4.0 выдал профит в 2.3 (!), и почти в 6-ть раз по отношению к FW 3.5.
P.S. Интересно с чем эти "маркетологи" сравнивали Core.