.NET āĻā§āĻ°ā§ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž
āĻšāĻžāĻ āĻ¸āĻŦ! āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¸ā§āĻ°āĻž āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻ¯āĻž āĻāĻŽāĻžāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻ°āĻž āĻāĻŦāĻ āĻāĻŽāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻ°ā§āĻāĻĻāĻŋāĻ¨ āĻ§āĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¸āĻāĻŋāĨ¤
āĻ¯ā§ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯:BenchmarkDotNet=v0.11.5, OS=Windows 10.0.18362
āĻāĻ¨ā§āĻā§āĻ˛ āĻā§āĻ° i5-8250U CPU 1.60GHz (Kaby Lake R), 1 CPU, 8 āĻ˛āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻāĻŦāĻ 4 āĻĢāĻŋāĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻā§āĻ°
.NET āĻā§āĻ° SDK=3.0.100
[āĻšā§āĻ¸ā§āĻ]: .NET āĻā§āĻ° 2.2.7 (CoreCLR 4.6.28008.02, CoreFX 4.6.28008.03), 64bit RyuJIT
āĻā§āĻ°: .NET āĻā§āĻ° 2.2.7 (CoreCLR 4.6.28008.02, CoreFX 4.6.28008.03), 64bit RyuJIT
[āĻšā§āĻ¸ā§āĻ]: .NET āĻā§āĻ° 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), 64bit RyuJIT
āĻā§āĻ°: .NET āĻā§āĻ° 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), 64bit RyuJIT
āĻāĻŦ=āĻā§āĻ° āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ=āĻā§āĻ°
ToList āĻŦāĻ¨āĻžāĻŽ ToArray āĻāĻŦāĻ āĻ¸āĻžāĻāĻā§āĻ˛
āĻāĻŽāĻŋ .NET āĻā§āĻ° 3.0 āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻ¤āĻĨā§āĻ¯āĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§āĻāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻā§ āĻāĻ¤ā§ āĻŽāĻžāĻ°āĻ§āĻ° āĻāĻ°ā§āĻā§, āĻāĻŽāĻŋ āĻ
āĻ¨ā§āĻ¯ āĻāĻžāĻ°āĻ āĻā§āĻ°āĻŦ āĻā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¨āĻž āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯ āĻ˛ā§āĻā§āĻ° āĻ¤āĻĨā§āĻ¯ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻŦ
āĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻĒāĻā§āĻˇ āĻĨā§āĻā§, āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻŽāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ; āĻ˛ā§āĻāĻžāĻ° āĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° "C++ āĻļā§āĻ˛ā§" āĻĒā§āĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ˛ā§āĻĒ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋā§ˇ
āĻā§āĻĄ:
public class Bench
{
private List<int> _list;
private int[] _array;
[Params(100000, 10000000)] public int N;
[GlobalSetup]
public void Setup()
{
const int MIN = 1;
const int MAX = 10;
Random random = new Random();
_list = Enumerable.Repeat(0, N).Select(i => random.Next(MIN, MAX)).ToList();
_array = _list.ToArray();
}
[Benchmark]
public int ForList()
{
int total = 0;
for (int i = 0; i < _list.Count; i++)
{
total += _list[i];
}
return total;
}
[Benchmark]
public int ForListFromEnd()
{
int total = 0;t
for (int i = _list.Count-1; i > 0; i--)
{
total += _list[i];
}
return total;
}
[Benchmark]
public int ForeachList()
{
int total = 0;
foreach (int i in _list)
{
total += i;
}
return total;
}
[Benchmark]
public int ForeachArray()
{
int total = 0;
foreach (int i in _array)
{
total += i;
}
return total;
}
[Benchmark]
public int ForArray()
{
int total = 0;
for (int i = 0; i < _array.Length; i++)
{
total += _array[i];
}
return total;
}
[Benchmark]
public int ForArrayFromEnd()
{
int total = 0;
for (int i = _array.Length-1; i > 0; i--)
{
total += _array[i];
}
return total;
}
}
.NET āĻā§āĻ° 2.2 āĻāĻŦāĻ 3.0-āĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ āĻāĻŋāĻ¨ā§āĻ¨āĨ¤ .NET āĻā§āĻ° 3.0-āĻ āĻāĻŽāĻŋ āĻ¯āĻž āĻĒā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°ā§ āĻĒā§āĻāĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻāĻ° āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻāĻžāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻ° āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻžāĻ āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¸āĻ āĻŋāĻ āĻ¸āĻāĻā§āĻ°āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ˛ā§āĻā§āĻ¨, āĻā§āĻ˛ā§ āĻ¯āĻžāĻŦā§āĻ¨ āĻ¨āĻž āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛ā§āĻĒ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ˛ā§āĻĒ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ āĻŦāĻā§āĨ¤ āĻ
āĻ¨ā§āĻ āĻĻāĻŋāĻ¨ āĻāĻā§ āĻšāĻžāĻŦāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
āĻ¨āĻŋāĻā§āĻˇā§āĻĒ
āĻāĻ āĻŦāĻāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ¯āĻžāĻ¸āĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻāĻāĻŋ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ, āĻ¸ā§āĻ āĻĒā§āĻ°āĻā§āĻā§āĻā§ āĻā§āĻ°āĻžāĻ-āĻā§āĻ¯āĻžāĻ-āĻĨā§āĻ°ā§ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĢāĻŋāĻ˛ā§āĻĄ āĻā§āĻ¯āĻžāĻ˛āĻŋāĻĄā§āĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻŦā§āĻāĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋ āĻ¯ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯āĻāĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ, āĻ¤āĻžāĻ āĻ¯āĻāĻ¨āĻ āĻ¸āĻŽā§āĻāĻŦ āĻāĻŽāĻŋ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻāĻļāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¤āĻŦā§ āĻāĻ¸ā§āĻ¨ āĻā§āĻ¨ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ āĻā§āĻ¨ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°āĻžāĻĒāĨ¤ āĻāĻŽāĻŋ āĻĻā§āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻ āĻā§āĻĄ āĻ˛āĻŋāĻā§āĻāĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻā§āĻĄ:
public bool ContainsHash()
{
bool result = false;
foreach (var file in _files)
{
var extension = Path.GetExtension(file);
if (_hash.Contains(extension))
result = true;
}
return result;
}
public bool ContainsHashTryCatch()
{
bool result = false;
try
{
foreach (var file in _files)
{
var extension = Path.GetExtension(file);
if (_hash.Contains(extension))
result = true;
}
if(!result)
throw new Exception("false");
}
catch (Exception e)
{
result = false;
}
return result;
}
.NET āĻā§āĻ° 3.0 āĻāĻŦāĻ āĻā§āĻ° 2.2-āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻāĻāĻ āĻ°āĻāĻŽ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ (.NET āĻā§āĻ° 3.0):
āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨ āĻā§āĻ¯āĻžāĻ āĻā§āĻĄāĻāĻŋ āĻŦā§āĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻĄā§āĻ° āĻ¸ā§āĻ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻĸā§āĻāĻžāĻŦā§āĻ¨ āĻ¨āĻž āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻŦā§ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž - āĻāĻāĻŋ āĻā§āĻĄāĻāĻŋāĻā§ āĻŦā§āĻāĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻŦā§ā§ˇ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻ˛ā§āĻĄ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§ āĻ¨āĻž, āĻŦāĻ°āĻ āĻĨā§āĻ°ā§ āĻ¨āĻŋāĻ āĻāĻā§āĻ¸ā§āĻĒāĻļāĻ¨ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĨ¤
āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻž āĻāĻŋāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ§ā§āĻ° āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽ āĻŦāĻž āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻžāĻ¨ā§āĻ¨ āĻ¯ā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻā§ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤, āĻā§āĻ¨ āĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž?
āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽā§ āĻ¨āĻž āĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ() āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ˛āĻŋāĻāĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ āĻāĻŦāĻ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻā§āĻŦ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛!!!
ToLower, ToLowerInvariant, ToUpper, ToUpperInvariant
.NET āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻŽāĻžāĻ° 5 āĻŦāĻāĻ°ā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻ¯āĻŧ, āĻāĻŽāĻŋ āĻāĻŽāĻ¨ āĻ āĻ¨ā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¸ā§āĻāĻŋ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻŽā§āĻ¯āĻžāĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŦāĻŋāĻāĻŋāĻ āĻĻā§āĻā§āĻāĻŋ: āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°āĻžāĻāĻ āĻ¸āĻ˛āĻŋāĻāĻļāĻ¨ āĻāĻŋāĻ˛, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĻā§āĨ¤ āĻ¤āĻŦā§ āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ? āĻ°āĻŋāĻāĻāĻžāĻ°ā§āĻ° C# āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ CLR āĻŦāĻāĻāĻŋāĻ¤ā§, āĻāĻŽāĻŋ āĻ¤āĻĨā§āĻ¯ āĻĒāĻĄāĻŧā§āĻāĻŋ āĻ¯ā§ ToUpperInvariant() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ ToLowerInvariant() āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻĻā§āĻ°ā§āĻ¤āĨ¤
āĻŦāĻ āĻĨā§āĻā§ āĻāĻĻā§āĻ§ā§āĻ¤āĻžāĻāĻļ:
āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻŋ āĻāĻāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻŋāĻ¨āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° .NET āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŽāĻžāĻā§ āĻšāĻ¤āĻŦāĻžāĻ āĻāĻ°ā§āĻā§ - 15% āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻĒāĻ°ā§āĻ° āĻĻāĻŋāĻ¨ āĻ¸āĻāĻžāĻ˛ā§ āĻ
āĻĢāĻŋāĻ¸ā§ āĻĒā§āĻāĻā§, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻāĻ°ā§āĻ§ā§āĻŦāĻ¤āĻ¨āĻĻā§āĻ° āĻāĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻžāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻŽāĻŋāĻāĻŽāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 2āĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ 14āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻ¯ā§ āĻāĻ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻā§āĻ¸ā§āĻ˛ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻŋāĻ˛, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻĒāĻŖā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžā§āĻĒāĻ°ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ˛āĨ¤
āĻāĻŽāĻŋ .NET Core-āĻāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻĒāĻ āĻāĻĒāĻ¨āĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻāĻŋ, āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ āĻ¨ā§āĻā§āĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ¤ā§ āĻāĻŽāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻžāĻ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ ToUpper() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤
āĻā§āĻĄ:
public const string defaultString = "VXTDuob5YhummuDq1PPXOHE4PbrRjYfBjcHdFs8UcKSAHOCGievbUItWhU3ovCmRALgdZUG1CB0sQ4iMj8Z1ZfkML2owvfkOKxBCoFUAN4VLd4I8ietmlsS5PtdQEn6zEgy1uCVZXiXuubd0xM5ONVZBqDu6nOVq1GQloEjeRN8jXrj0MVUexB9aIECs7caKGddpuut3";
[Benchmark]
public bool ToLower()
{
return defaultString.ToLower() == defaultString.ToLower();
}
[Benchmark]
public bool ToLowerInvariant()
{
return defaultString.ToLowerInvariant() == defaultString.ToLowerInvariant();
}
[Benchmark]
public bool ToUpper()
{
return defaultString.ToUpper() == defaultString.ToUpper();
}
[Benchmark]
public bool ToUpperInvariant()
{
return defaultString.ToUpperInvariant() == defaultString.ToUpperInvariant();
}
.NET āĻā§āĻ° 3.0-āĻ, āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻĻā§āĻ§āĻŋ ~x2 āĻāĻŦāĻ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻā§āĨ¤
āĻ¸ā§āĻ¤āĻ° āĻ¸āĻāĻāĻ˛āĻ¨
āĻāĻŽāĻžāĻ° āĻļā§āĻˇ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻāĻŋ, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻļāĻŦā§āĻĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ˛ā§āĻā§āĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻļāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻ˛āĻŋāĻāĻļāĻ¨ā§āĻ° āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻāĻžāĻāĻŽāĻā§ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄā§āĻ° āĻāĻŋāĻā§ āĻ āĻāĻļ āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻāĻ°āĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ NET Core 3.0-āĻāĻ° āĻāĻŦāĻŋāĻ°ā§āĻāĻžāĻŦā§āĻ° āĻ¸āĻžāĻĨā§, āĻāĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻ¸āĻš āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšā§āĻ°āĻžāĻ¸ āĻĒā§āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻŦāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°ā§āĻŦā§, āĻāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻāĻžāĻ°āĻŖā§ ASP.NET āĻā§āĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ˛ā§āĻā§āĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻļāĻ¨ āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ˛ā§āĻĄā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĢā§āĻ°āĻŋāĻ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ .NET Core 3.0-āĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻāĻā§, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻŽ-āĻ˛āĻŋāĻĄ, āĻ¸āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻ°, āĻŽāĻŋāĻĄāĻ˛ āĻĒāĻĻā§ āĻĨāĻžāĻā§āĻ¨ āĻŦāĻž āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŦāĻŋāĻāĻžāĻļ āĻĻāĻ˛ā§āĻ° āĻŽā§āĻ˛ā§āĻ¯ āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ¯āĻŧ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻāĻāĻžāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤
.NET āĻ˛ā§āĻā§āĻ˛ āĻāĻĒ
āĻāĻĒāĻ¨āĻžāĻ° .NET āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ / .NET āĻā§āĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻāĻ°ā§āĻ¨ā§ˇ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ˛āĻžāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛ā§ āĻ āĻŋāĻ āĻā§? āĻāĻ¸ā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ¨:
- .NET āĻā§āĻ° 3.0 R2R āĻāĻŋāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻā§ āĻ¯āĻž .NET āĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻļā§āĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻā§ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§ā§ˇ
- āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 2.2 āĻāĻ° āĻ¸āĻžāĻĨā§, āĻāĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻļāĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻāĻŽ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻŦā§āĨ¤
- āĻ¨āĻ¤ā§āĻ¨ .NET āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
- āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻžāĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤
- āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¸ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨/āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻ/āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ/āĻ¸ā§āĻā§āĻ°āĻŋāĻ/āĻ°ā§āĻā§āĻā§āĻ¸ āĻāĻŦāĻ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻ āĻāĻŋāĻā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ .NET āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĨā§āĻā§ .NET āĻā§āĻ°ā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŦā§āĻ¸ā§āĻ āĻĒāĻžāĻŦā§āĻ¨ā§ˇ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸ā§āĻŦā§, āĻāĻŽāĻŋ .NET Core 3.0 āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŋāĻā§ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻāĻŋ:
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻā§āĻĄ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ¸ā§āĻ°āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻāĻŦāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ .NET-āĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻāĻžāĻ¨ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻŋ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com