Making LINQ Blazing fast with PLINQ (Parallel LINQ) | .NET & C# Essentials
Vložit
- čas přidán 27. 04. 2024
- In today's video we're going to cover every single PLINQ (Parallel LINQ) extension method with examples.
PLINQ is a powerful and can make your LINQ queries extremely fast.
We're going to cover how PLINQ is implemented behind the scenes, what are all the various options, and almost everything you need to know about PLINQ before integrating it in your production applications.
Connect with me on 'em socials:
Twitter: / amantinband
LinkedIn: / amantinband
GitHub: github.com/amantinband
Check out all my courses on DomeTrain:
dometrain.com/author/amichai-...
Support the channel and get the source code:
/ amantinband
Thanks for watching, don't forget to like & comment & subscribe! ❤️ 💻
00:00. Overview
00:56. AsParallel
05:38. Mapping [thread id] to [sequence elements processed by that thread]
09:30. WithDegreeOfParallelism
09:50. How PLINQ works under the hood
15:05. AsOrdered
15:18. AsUnordered
15:40. ParallelEnumerable.Range
16:16. ParallelEnumerable.Repeat
16:29. ParallelEnumerable.Empty
16:48. AsSequential
18:45. WithCancellation
19:29. WithMergeOptions
26:26. Partitioning in PLINQ
29:35. WithExecutionMode
31:04. ForAll
33:22. Solving the PLINQ Riddle - Věda a technologie
Great content, I've learned a little more today. Thank you!
Really great description for plinq, thanks
what is the .Dump() method references from? thanks!
Very good video. Thank you.
Great, thanks!
Highly informative! Excellent job!
עבודה מעולה!
Nice tutorial😀 great effort keep up good work, could you please share the how to do the environment set up like you did for visual studio code
thx :)
This is great. I'm love using LINQ and this will certainly help make more performant LINQ queries. I assume Parallel foreach loops are still faster? Though the difference is probably smaller compared to sequential LINQ and foreach.
What is the performance impact for ordering?
Since .AsParallel() doesn't necessarily use Parallelism, do you recommend to add it to any LINQ-Query by default? Though if that were the case, Microsoft probably would've implemented it that way anyways.
Nice. What if the HeavyComputation is Task based or ValueTask based? Is PLinq still the right way to go?
Thanks for this video Amichai, btw what's your tool to print on your screen boxes with arrows in colors with your mouse and keyboard ?
Presentify
Nice. It's time to create video for Task, await, cancellation token, asyn void, confiureawait false 😅😊🙏
Most of the time my "heavy computation" is async. Or I have many small operations which I need to use on the collection.
How would I do that with PLINQ?
PLINQ is best suited for long-running CPU-bound operations. If you’re dealing with many small operations or asynchronous computations (sending HTTP requests for example) then async await with Task.WhenAll is a better choice over PLINQ
Great content, the difference between this and await Task.When all is that as Parallel is better to use with heavy and few computation, and task.whenall is better for "parallel" i/o operations?
Async await is for IO. Parrallel, Task.Run is for cpu bound.
how to scaffold test project to test all this ?
can we alternate between threads with PLINQ, like one method print "ping" the other print "pong" and get an output : "ping pong ping pong ping pong ..." ? thanks for the video :D
If you need to maintain a specific order then you can use AsOrdered
this is probably a dumb question but... can you use P LINQ AND SIMD LINQ together?
What is this dump() extension method?
It’s a convenient way to print objects to the console. Check out the package Dumpify
What do you mean by the sentence do you a favor and don't use pink in your applications because you need to be familiar with how things work under the hod ?
Adding "AsParallel" without knowing how PLINQ works will likely introduce bugs or make your code even slower. It's important to understand how PLINQ actually works to know how to use it correctly.