Size: a a a

2020 September 02

S

Sergey Trofimov in CODE BLOG / C#
Никита Петроченко
Лан, пордоньте )
правда я чет думал и для Array будет быстрее
источник

S

Sergey Trofimov in CODE BLOG / C#
а тут наоборот
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Ля как-то тут все ровно наоборот относительно того что я думал😅
источник

S

Sergey Trofimov in CODE BLOG / C#
Artemko
Ну меня интересует больше вопрос если в интерфейсе одно свойство , а в классе , которые его реализует 20 свойств и  куча переменных , методов и т.д. и я кастону до интерфейса свой класс , то будет ли прирост хоть где-то
от простого каста не будет лучше в твоем случае, твои свойства ж никуда не денутся из памяти) просто скроются интерфейсом
источник

НП

Никита Петроченко... in CODE BLOG / C#
И как то странно, есть код, на котором это проверялось?
источник

S

Sergey Trofimov in CODE BLOG / C#
Никита Петроченко
И как то странно, есть код, на котором это проверялось?
public class IterationBenchmark
{
 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 rnd = new Random();
   _list = Enumerable.Repeat(0, N).Select(i => rnd.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 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;
 }
}
источник

НП

Никита Петроченко... in CODE BLOG / C#
Sergey Trofimov
public class IterationBenchmark
{
 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 rnd = new Random();
   _list = Enumerable.Repeat(0, N).Select(i => rnd.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 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;
 }
}
А шо це за бенчмарк?)
источник

S

Sergey Trofimov in CODE BLOG / C#
BenchmarkForDotNet наверное
источник

S

Sergey Trofimov in CODE BLOG / C#
я хз )
источник

НП

Никита Петроченко... in CODE BLOG / C#
Sergey Trofimov
BenchmarkForDotNet наверное
источник

НП

Никита Петроченко... in CODE BLOG / C#
Осталось найти, как с этим работать )
источник

A

Artemko in CODE BLOG / C#
Sergey Trofimov
я ж говорю, зависит
То есть , при больших объемах стоит кастовать до интерфейса ?
источник

P

Phantom in CODE BLOG / C#
.net core 2
источник

A

Artemko in CODE BLOG / C#
было бы конечно интересно посмотреть на цифры
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Так сделай да посмотри)
источник

НП

Никита Петроченко... in CODE BLOG / C#
Sergey Trofimov
BenchmarkForDotNet наверное
Бум )
источник

🎁

🎁Kopoh🎄 in CODE BLOG / C#
Ааа
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Форыч в массиве быстрее фора, шта
источник

P

Phantom in CODE BLOG / C#
Artemko
Ребят , а такой вопрос : если мы закастовали List<T>  list до IEnumerable<T> enum  , мы будем быстрее обрабатывать enum в цикле или еще где , чем list ?
Разници нет, если не использовать list[], но если у тебя изначально IEnumerable и ты можешь с ним работать, то лучше так, чем делать ToList
источник

P

Phantom in CODE BLOG / C#
Ах и да, IEnumerable и List это совсем другие вещи
источник