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

Поделиться
HTML-код
  • Опубликовано: 19 июн 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
  • НаукаНаука

Комментарии • 27

  • @Silky987
    @Silky987 3 месяца назад +10

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

  • @vitaliiodiichuk5317
    @vitaliiodiichuk5317 3 месяца назад

    Really great description for plinq, thanks

  • @jerrydsta1056
    @jerrydsta1056 3 месяца назад +7

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

  • @user-jj5ov2lb2y
    @user-jj5ov2lb2y 3 месяца назад

    Very good video. Thank you.

  • @timur2887
    @timur2887 3 месяца назад

    Great, thanks!

  • @TCFIFA
    @TCFIFA 3 месяца назад

    עבודה מעולה!

  • @Pezsmapatkany
    @Pezsmapatkany 3 месяца назад +1

    Highly informative! Excellent job!

  • @kesavanarayanaanaparthi6428
    @kesavanarayanaanaparthi6428 3 месяца назад

    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 3 месяца назад

    thx :)

  • @Linkario86
    @Linkario86 3 месяца назад

    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 3 месяца назад

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

  • @user-rd6zd5ym9m
    @user-rd6zd5ym9m 3 месяца назад

    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 3 месяца назад

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

  • @alfonsdeda8912
    @alfonsdeda8912 3 месяца назад +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 3 месяца назад

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

  • @Dustyy01
    @Dustyy01 3 месяца назад +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  3 месяца назад +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

  • @minionmasterSXS
    @minionmasterSXS 3 месяца назад

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

  • @mdnoverflow
    @mdnoverflow Месяц назад

    how to scaffold test project to test all this ?

  • @MrAymenmatador
    @MrAymenmatador 3 месяца назад

    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  3 месяца назад

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

  • @null-undefined
    @null-undefined 3 месяца назад

    What is this dump() extension method?

    • @amantinband
      @amantinband  3 месяца назад +5

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

  • @alexmel8448
    @alexmel8448 3 месяца назад

    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  3 месяца назад +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.