Making LINQ Blazing fast with PLINQ (Parallel LINQ) | .NET & C# Essentials

Sdílet
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

Komentáře • 27

  • @Silky987
    @Silky987 Před 2 měsíci +10

    Great content, I've learned a little more today. Thank you!

  • @vitaliiodiichuk5317
    @vitaliiodiichuk5317 Před měsícem

    Really great description for plinq, thanks

  • @jerrydsta1056
    @jerrydsta1056 Před měsícem +5

    what is the .Dump() method references from? thanks!

  • @user-jj5ov2lb2y
    @user-jj5ov2lb2y Před 2 měsíci

    Very good video. Thank you.

  • @timur2887
    @timur2887 Před 2 měsíci

    Great, thanks!

  • @Pezsmapatkany
    @Pezsmapatkany Před 2 měsíci +1

    Highly informative! Excellent job!

  • @TCFIFA
    @TCFIFA Před měsícem

    עבודה מעולה!

  • @kesavanarayanaanaparthi6428

    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

  • @Buutyful
    @Buutyful Před 2 měsíci

    thx :)

  • @Linkario86
    @Linkario86 Před 2 měsíci

    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.

  • @cccyberfamilydk
    @cccyberfamilydk Před 2 měsíci

    Nice. What if the HeavyComputation is Task based or ValueTask based? Is PLinq still the right way to go?

  • @user-rd6zd5ym9m
    @user-rd6zd5ym9m Před 2 měsíci

    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 ?

  • @omidkianifar5144
    @omidkianifar5144 Před měsícem

    Nice. It's time to create video for Task, await, cancellation token, asyn void, confiureawait false 😅😊🙏

  • @Dustyy01
    @Dustyy01 Před 2 měsíci +3

    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?

    • @amantinband
      @amantinband  Před 2 měsíci +7

      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

  • @alfonsdeda8912
    @alfonsdeda8912 Před 2 měsíci +1

    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?

    • @andreysemykin5879
      @andreysemykin5879 Před 2 měsíci

      Async await is for IO. Parrallel, Task.Run is for cpu bound.

  • @mdnoverflow
    @mdnoverflow Před 23 hodinami

    how to scaffold test project to test all this ?

  • @MrAymenmatador
    @MrAymenmatador Před měsícem

    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

    • @amantinband
      @amantinband  Před měsícem

      If you need to maintain a specific order then you can use AsOrdered

  • @minionmasterSXS
    @minionmasterSXS Před měsícem

    this is probably a dumb question but... can you use P LINQ AND SIMD LINQ together?

  • @null-undefined
    @null-undefined Před 2 měsíci

    What is this dump() extension method?

    • @amantinband
      @amantinband  Před 2 měsíci +5

      It’s a convenient way to print objects to the console. Check out the package Dumpify

  • @alexmel8448
    @alexmel8448 Před 2 měsíci

    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 ?

    • @amantinband
      @amantinband  Před 2 měsíci +1

      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.