Let’s make it a bit more complicated and simply change the assignment to string concatenation (= to +=): | Method | numberOfItems | Mean | Error | StdDev | Does this justify the usage of ForAll()? Maybe not in this case, but if we plan to execute a more complicated logic during iteration it might be worth it. When iterating 100 elements, foreach loop is 126x faster, but with 10k elements, it’s only 8.5x faster than the parallel ForAll() method. The improvement in ForAll() execution speed is visible though. But in terms of pure speed, the foreach loop wins the race. Speed might vary for different logic we want to execute while iterating the dictionary. Note that we’ve used a simple assignment for this test. We can push this even further but 10k is already a big number of items to hold in a dictionary. What’s interesting is that it outperforms the parallel ForAll() method even when the number of items is very high. | WhenDictionaryParallelEnumerable | 10000 | 302,990.9 ns | 3,878.92 ns | 3,028.40 ns |Īs expected the foreach loop performs very well in all three cases. NET/C# content and get paid? > JOIN US! << | Method | numberOfItems | Mean | Error | StdDev | Wanna join Code Maze Team, help us produce more awesome. We’re going to test for three different scenarios or rather with the different number of elements in the dictionary: 100, 1000, and 10000: Public void WhenDictionaryUsingForLoop(Dictionary dictionaryData, string numberOfItems)įor (int i = 0 i dictionaryData, string numberOfItems)ĭictionaryData.AsParallel().ForAll(testValue => result = testValue.Value) Public void WhenDictionaryUsingForEach(Dictionary dictionaryData, string numberOfItems)įoreach (var testValue in dictionaryData) We’re going to remove the Console.Writeline() and do the simple assignment: We can implement a performance benchmark to show the differences between these methods. For vs Foreach vs ParallelEnumerable.ForAll() The results might not be sorted, but it does loop through the dictionary. Next, let’s use this Dictionary to loop through all the values with a foreach loop: public static void SubDictionaryUsingForEach(Dictionary monthsInYear)Ĭonsole.WriteLine($""))
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |