.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจคเจฟ เจธเจผเฉเจฐเฉ€ เจ…เจ•เจพเจฒ! เจ‡เจน เจฒเฉ‡เจ– เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธเจพเจ‚ เจฆเจพ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจนเฉˆ เจœเฉ‹ เจฎเฉ‡เจฐเฉ‡ เจธเจพเจฅเฉ€ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจตเจฐเจค เจฐเจนเฉ‡ เจนเจพเจ‚เฅค

เจฎเจธเจผเฉ€เจจ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจœเจฟเจธ 'เจคเฉ‡ เจ—เจฃเจจเจพ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€:BenchmarkDotNet=v0.11.5, OS=Windows 10.0.18362
Intel Core 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 เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€:

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจ…เจธเฉ€เจ‚ เจ‡เจน เจธเจฟเฉฑเจŸเจพ เจ•เฉฑเจข เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจเจฐเฉ‡ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจฆเฉ€ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจตเจพเจฒเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ‡เจธเจฆเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจ…เจคเฉ‡ เจธเจชเจธเจผเจŸ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจ†เจ•เจพเจฐ เจตเฉฐเจก เจฆเฉ‡ เจ•เจพเจฐเจจ เจคเฉ‡เจœเจผ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจตเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจ—เจฃเจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจธเจนเฉ€ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจญเจพเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเฉ‚เจชเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจคเจฐเจ• เจฒเจฟเจ–เจฆเฉ‡ เจนเฉ‹, เจ‡เจน เจจเจพ เจญเฉเฉฑเจฒเฉ‹ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจ†เจฎ เจฒเฉ‚เจช เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจธเฉฐเจญเจต เจฒเฉ‚เจช เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจตเฉ€ เจนเฉˆเฅค เจ•เจพเจซเฉ€ เจธเจฎเจพเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเจพเจฌเจฐ 'เจคเฉ‡ เจ‡เจ• เจฒเฉ‡เจ– เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจนเฉ‹เจ‡เจ† เจธเฉ€: https://habr.com/ru/post/124910/. เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจธเฉเฉฑเจŸเฉ‹

เจ‡เฉฑเจ• เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเจฟเจฐเจพเจธเจคเฉ€ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉฐเจชเจจเฉ€ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจธเฉ€, เจ‰เจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉ‹เจธเจผเจฟเจธเจผ-เจ•เฉˆเจš-เจฅเฉเจฐเฉ‹ เจ•เฉฐเจธเจŸเจฐเฉฑเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจซเฉ€เจฒเจก เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจเจพ เจ†เจฎ เจ—เฉฑเจฒ เจธเฉ€เฅค เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจฎเจ เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจ‡เจน เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจ—เฉˆเจฐ-เจธเจฟเจนเจคเจฎเฉฐเจฆ เจตเจชเจพเจฐเจ• เจคเจฐเจ• เจธเฉ€, เจ‡เจธ เจฒเจˆ เจœเจฆเฉ‹เจ‚ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡ เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€เฅค เจชเจฐ เจ†เจ“ เจ‡เจน เจชเจคเจพ เจ•เจฐเฉ€เจ เจ•เจฟ เจ…เจœเจฟเจนเฉ€ เจ‰เจธเจพเจฐเฉ€ เจจเจพเจฒ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ€ เจชเจนเฉเฉฐเจš เจ•เจฟเจ‰เจ‚ เจฎเจพเฉœเฉ€ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจฆเฉ‹ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเจพ เจ•เฉ‹เจก เจฒเจฟเจ–เจฟเจ† เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจตเจฟเจ•เจฒเจช เจฒเจˆ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจฌเจฃเจพเจเฅค

เจ•เฉ‹เจก:

        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):

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจ•เฉˆเจš เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจ”เจ–เจพ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจ‰เจน เจฒเจพเจˆเจจเจพเจ‚ เจจเจนเฉ€เจ‚ เจชเจพเจ‰เจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจœเจฟเจจเฉเจนเจพเจ‚ เจคเฉ‹เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ - เจ‡เจน เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจ†เจธเจพเจจ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจ‡เจน เจ…เจชเจตเจพเจฆเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ‡เฉฐเจจเจพ เจœเจผเจฟเจ†เจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจฅเฉเจฐเฉ‹ เจจเจฟเจŠ เจเจ•เจธเฉˆเจชเจธเจผเจจ เจ•เฉฐเจธเจŸเจฐเฉฑเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเฉฑเจŸเจฃเจพ เจนเฉˆเฅค

เจ…เจชเจตเจพเจฆ เจธเฉเฉฑเจŸเจฃเจพ เจ•เฉเจ เจ•เจฒเจพเจธ เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจนเฉˆ เจœเฉ‹ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเฉ‡เจ—เจพเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจฐเจฎ เจœเจพเจ‚ เจ•เฉเจ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ—เจฒเจคเฉ€ เจ•เฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€?

เจœเฉ‡เจ•เจฐ เจ‡เจน เจธเจฅเจฟเจคเฉ€ เจฌเฉ‡เจฎเจฟเจธเจพเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฅเฉเจฐเฉ‹ เจจเจฟเจŠ เจ…เจชเจตเจพเจฆ() เจจเจฟเจฐเจฎเจพเจฃ เจจเจนเฉ€เจ‚ เจฒเจฟเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพเฅค เจ…เจชเจตเจพเจฆ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃเจพ เจ…เจคเฉ‡ เจธเฉเฉฑเจŸเจฃเจพ เจฌเจนเฉเจค เจฎเจนเจฟเฉฐเจ—เจพ เจนเฉˆ !!!

ToLower, ToLowerInvariant, ToUpper, ToUpperInvariant

.NET เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฎเฉ‡เจฐเฉ‡ 5 เจธเจพเจฒเจพเจ‚ เจฆเฉ‡ เจคเจœเจผเจฐเจฌเฉ‡ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ†เจ‡เจ† เจนเจพเจ‚ เจœเฉ‹ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจฎเฉˆเจšเจฟเฉฐเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจจเฅค เจฎเฉˆเจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจคเจธเจตเฉ€เจฐ เจตเฉ€ เจตเฉ‡เจ–เฉ€: เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจเจ‚เจŸเจฐเจชเฉเจฐเจพเจˆเจœเจผ เจนเฉฑเจฒ เจธเฉ€, เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐ เจ‡เฉฑเจ• เจจเฉ‡ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจคเฉเจฒเจจเจพ เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉ€เจคเฉ€เฅค เจชเจฐ เจ•เฉ€ เจตเจฐเจคเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ‡เจ•เจœเฉเฉฑเจŸ เจ•เจฐเจจเจพ เจนเฉˆ? เจฐเจฟเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ C# เจฆเฉเจ†เจฐเจพ CLR เจ•เจฟเจคเจพเจฌ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉœเฉเจนเฉ€ เจนเฉˆ เจ•เจฟ ToUpperInvariant() เจตเจฟเจงเฉ€ ToLowerInvariant() เจจเจพเจฒเฉ‹เจ‚ เจคเฉ‡เจœเจผ เจนเฉˆเฅค

เจ•เจฟเจคเจพเจฌ เจคเฉ‹เจ‚ เจ…เฉฐเจธเจผ:

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจฌเฉ‡เจธเจผเฉฑเจ•, เจฎเฉˆเจ‚ เจ‡เจธ 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจซเจฟเจฐ .NET เจซเจฐเฉ‡เจฎเจตเจฐเจ• 'เจคเฉ‡ เจ•เฉเจ เจŸเฉˆเจธเจŸ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจนเฉˆเจฐเจพเจจ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ - 15% เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจตเจพเจงเจพ. เจซเจฟเจฐ, เจ…เจ—เจฒเฉ€ เจธเจตเฉ‡เจฐ เจ•เฉฐเจฎ 'เจคเฉ‡ เจชเจนเฉเฉฐเจšเจฃ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจ‡เจน เจฎเจพเจช เจ†เจชเจฃเฉ‡ เจ‰เฉฑเจš เจ…เจงเจฟเจ•เจพเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฆเจฟเจ–เจพเจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจฆเจฟเฉฑเจคเฉ€เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจจเจตเฉ‡เจ‚ เจฎเจพเจชเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจ เจฒเจˆ 2 เจตเจฟเฉฑเจšเฉ‹เจ‚ 14 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจน เจตเจฟเจšเจพเจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟ เจ‡เจน เจฆเฉ‹ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเจธเจผเจพเจฒ เจเจ•เจธเจฒ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ เจฎเฉŒเจœเฉ‚เจฆ เจธเจจ, เจจเจคเฉ€เจœเจพ เจ‰เจคเจชเจพเจฆ เจฒเจˆ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเฉ€เฅค

เจฎเฉˆเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ .NET เจ•เฉ‹เจฐ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฒเจˆ เจฎเจพเจช เจตเฉ€ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐ เจ‡เฉฑเจ• เจธเจญ เจคเฉ‹เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉฑเจฒ เจฒเจˆ เจšเฉ‹เจฃ เจ•เจฐ เจธเจ•เฉ‡เฅค เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจฌเฉฑเจธ เจ‡เจน เจœเฉ‹เฉœเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจœเจฟเจธ เจ•เฉฐเจชเจจเฉ€ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจธเจŸเฉเจฐเจฟเฉฐเจ—เจธ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ 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 เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ 3.0 เจตเจฟเฉฑเจš, เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจตเจฟเจงเฉ€ เจฒเจˆ เจตเจพเจงเจพ ~x2 เจนเฉˆ เจ…เจคเฉ‡ เจ†เจชเจธ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจจเฉ‚เฉฐ เจธเฉฐเจคเฉเจฒเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจŸเฉ€เจ…เจฐ เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ

เจฎเฉ‡เจฐเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ‡เจธ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจฆเจพ เจธเฉฐเจ–เฉ‡เจช เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจนเฉˆ, เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ…เจคเฉ‡ เจชเฉ‚เจฐเจ• เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจฌเจนเฉ-เจชเฉฑเจงเจฐเฉ€ เจธเฉฐเจ•เจฒเจจ เจคเฉเจนเจพเจกเฉ‡ เจนเฉฑเจฒ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจฐเจฌเจพเจจเฉ€ เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจฌเฉˆเจ•เจ—เฉเจฐเจพเจ‰เจ‚เจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจงเฉ‡เจฐเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡, เจœเฉ‹ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเจพ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจชเฉ‡เจธเจผ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค NET เจ•เฉ‹เจฐ 3.0 เจฆเฉ‡ เจ†เจ—เจฎเจจ เจฆเฉ‡ เจจเจพเจฒ, เจŸเฉ€เจ…เจฐ เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจธเจฎเจฐเจฅเจฟเจค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฒเจˆ เจฌเจฟเจฒเจก เจŸเจพเจˆเจฎ เจ˜เฉฑเจŸ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจฌเฉฑเจ— เจซเจฟเจ•เจธ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค เจชเจนเจฟเจฒเจพเจ‚, เจ‡เจธ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจจเฉ‡ ASP.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจชเฉˆเจฆเจพ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจจ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€-เจฒเฉˆเจตเจฒ เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€ เจฌเจฟเจฒเจก เจฆเฉŒเจฐเจพเจจ เจซเฉเจฐเฉ€เจœเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš .NET เจ•เฉ‹เจฐ 3.0 เจตเจฟเฉฑเจš เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฎเจฐเฉฑเจฅ เจนเฉˆ, เจชเจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹ เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจŸเฉ€เจฎ-เจฒเฉ€เจก, เจธเฉ€เจจเฉ€เจ…เจฐ, เจฎเจฟเจกเจฒ เจฆเฉ‡ เจ…เจนเฉเจฆเฉ‡ 'เจคเฉ‡ เจนเฉ‹, เจœเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเจฟเจญเจพเจ— เจฆเฉ‡ เจฎเฉเจ–เฉ€ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเจ•เจพเจธ เจŸเฉ€เจฎ เจฆเฉ‡ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉ‹เจตเจพเจ‚ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจพเจ‚ เจฌเจšเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจธเจฎเจพเจ‚ เจ–เฉเจฆเฅค

.NET เจชเฉฑเจงเจฐ เจ‰เฉฑเจชเจฐ

เจ†เจชเจฃเฉ‡ .NET เจซเจฐเฉ‡เจฎเจตเจฐเจ• / .NET เจ•เฉ‹เจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจ…เจชเจ—เฉเจฐเฉ‡เจก เจ•เจฐเฉ‹เฅค เจ…เจ•เจธเจฐ, เจนเจฐเฉ‡เจ• เจจเจตเจพเจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจพเจงเฉ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจพเจญ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค

เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฒเจพเจญ เจ•เฉ€ เจนเจจ? เจ†เจ“ เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ:

  • .NET เจ•เฉ‹เจฐ 3.0 เจจเฉ‡ R2R เจšเจฟเฉฑเจคเจฐ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ‡ เจนเจจ เจœเฉ‹ .NET เจ•เฉ‹เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจ˜เจŸเจพ เจฆเฉ‡เจฃเจ—เฉ‡เฅค
  • เจธเฉฐเจธเจ•เจฐเจฃ 2.2 เจฆเฉ‡ เจจเจพเจฒ, เจŸเฉ€เจ…เจฐ เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ†, เจœเจฟเจธเจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ˜เฉฑเจŸ เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ‰เจฃเจ—เฉ‡เฅค
  • เจจเจตเฉ‡เจ‚ .NET เจฎเจฟเจ†เจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค
  • เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค
  • เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ, เจนเจฐเฉ‡เจ• เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจจเจพเจฒ เจฌเฉ‡เจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ•เจฒเฉˆเจ•เจธเจผเจจ/เจธเจŸเฉเจฐเจ•เจŸ/เจธเจŸเฉเจฐเฉ€เจฎ/เจธเจŸเฉเจฐเจฟเฉฐเจ—/เจฐเฉ‡เจœเฉˆเจ•เจธ เจฆเจพ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฌเจนเฉเจค เจ•เฉเจ เจธเฉเจงเจพเจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ .NET เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจคเฉ‹เจ‚ .NET เจ•เฉ‹เจฐ 'เจคเฉ‡ เจฎเจพเจˆเจ—เจฐเฉ‡เจŸ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ‡เฉฑเจ• เจตเฉฑเจกเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฌเฉ‚เจธเจŸ เจฎเจฟเจฒเฉ‡เจ—เจพเฅค เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจ•เฉเจ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• เจœเฉ‹เฉœเจฆเจพ เจนเจพเจ‚ เจœเฉ‹ .NET เจ•เฉ‹เจฐ 3.0 เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ: https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/

.NET เจ•เฉ‹เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ

เจธเจฟเฉฑเจŸเจพ

เจ•เฉ‹เจก เจฒเจฟเจ–เจฃ เจตเฉ‡เจฒเฉ‡, เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจนเจฟเจฒเฉ‚เจ†เจ‚ เจตเฉฑเจฒ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃเจพ เจ…เจคเฉ‡ เจตเจงเฉ€เจ† เจจเจคเฉ€เจœเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจกเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจ…เจคเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจนเฉˆเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ .NET เจตเจฟเฉฑเจš เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจ†เจชเจฃเจพ เจ—เจฟเจ†เจจ เจธเจพเจ‚เจเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค

เจ—เฉ€เจฅเจฌ เจจเจพเจฒ เจฒเจฟเฉฐเจ• เจ•เจฐเฉ‹

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹