High-performance code design patterns in C#. Konrad Kokosa .NET Fest 2019

Sdílet
Vložit
  • čas přidán 23. 01. 2020
  • The talk from .NET Fest conference in Kyiv, Ukraine.
    Presentation: prodotnetmemory.com/slides/Pe...
    Fb: / dotnetfest
    Website: dotnetfest.com/
    More and more effort is being seen in .NET ecosystem put into the performance. Quite often we are seeing a new benchmark or blog post about memory allocations being reduced or overall throughput is increased. But how all this is achieved? Can any common code patterns be recognized, named and summarized in a modern C#, at the times of C# 8.0 and .NET Core 3.0/.NET 5? Can we provide a kind of Gang Of Four "design patterns" counterpart in the context of performance? As I believe so, in this talk a propose such a list of patterns, altogether with the rationale behind them and practical use cases. Please, feel invited to the world of common ways of using stackallocs, Span of T, pipelines, parallel processing and more.

Komentáře • 35

  • @kyleolsen5441
    @kyleolsen5441 Před 4 lety +4

    Great talk. I hope you get a chance to give the full version soon!

  • @obiwan_smirnobi
    @obiwan_smirnobi Před rokem

    Awesome talk, really good and easy-to-understand overview, thank you 👍

  • @amosegel2510
    @amosegel2510 Před 2 lety +1

    Very good presentation, thanks!

  • @caioavidal
    @caioavidal Před 3 lety +3

    This is gold

  • @Southpaw101
    @Southpaw101 Před 2 lety

    GREAT talk, thank you!

  • @DrExpresso
    @DrExpresso Před 3 lety +1

    Great talk

  • @user-te4io9hm4f
    @user-te4io9hm4f Před 2 lety

    Excellent! Thanks.

  • @vikasdangwal3080
    @vikasdangwal3080 Před 4 lety +3

    this is one my fav video ever :)

  • @pr0l0gix
    @pr0l0gix Před 20 dny

    nice things to know. On Stack Allocation, I read that on windows its 1MB and on linux/mac OS its 8MB

  • @dinozaurwrs
    @dinozaurwrs Před 3 lety +3

    Jah Bless! Knoweledge is power!

  • @TedFanat
    @TedFanat Před 3 lety +3

    This is a great speech! A lot of useful information as for me

    • @titusariel84
      @titusariel84 Před 2 lety

      you probably dont care but does anyone know of a method to log back into an Instagram account..?
      I somehow forgot my login password. I appreciate any assistance you can give me

    • @adrielderek9159
      @adrielderek9159 Před 2 lety

      @Titus Ariel Instablaster =)

    • @titusariel84
      @titusariel84 Před 2 lety

      @Adriel Derek Thanks so much for your reply. I got to the site thru google and Im trying it out now.
      I see it takes a while so I will reply here later when my account password hopefully is recovered.

    • @titusariel84
      @titusariel84 Před 2 lety

      @Adriel Derek It worked and I actually got access to my account again. Im so happy!
      Thank you so much, you really help me out!

    • @adrielderek9159
      @adrielderek9159 Před 2 lety

      @Titus Ariel Happy to help :)

  • @Mr4hitch
    @Mr4hitch Před 3 lety +1

    Thanks :)

  • @Estrav.Krastvich
    @Estrav.Krastvich Před 11 měsíci

    Awesome really.

  • @letmewatch27
    @letmewatch27 Před 3 lety +9

    if I got it right, these patterns seems to be usable on in some advanced programing scenarios , not applicable to daily/ normal programing scenarios for data-driven applications.

    • @DevNerdKonradKokosa
      @DevNerdKonradKokosa Před 2 lety +3

      Typically yes, as for typical LoB app the default performance is good enough!

  • @rusmaakatupal4723
    @rusmaakatupal4723 Před 7 měsíci

    It will be very hard for C# to truly compete with "High Performance scnenarios" like needed in embeded systems but this might be sufficiant for game dev.
    C# Unity use to suck so hard and they have come a long way up. That one part about "array of structures" made it worth it to watch.
    There is one very important point he missed though...
    --> .Net introduced a new heap section called "pinned object heap".
    It avoids fragmenting the heap which is the problem when temporaly pinning arrays with "fixed" statments, and is perfect for deeling with buffers in unsafe context.
    Although it remains significantly slower than static and unmanaged memory, I have high hopes than one day we will be able to pin complex objects
    and not only primitve array data types.
    PS : If your a web/cloud dev I might have wasted your time beg my pardon :'P

  • @gamedev_expert
    @gamedev_expert Před rokem +1

    Now we have SkipLocalsInit attribute

  • @koorshashirazi2037
    @koorshashirazi2037 Před 3 lety +1

    👌👌👌👍

  • @radoslavivanov8176
    @radoslavivanov8176 Před 3 lety +24

    It's shame they didn't give this guy the time for the full presentation, instead they are giving one hour to Jimmy Bogart to talk again some irrelevant bullshit about Microservices...

  • @AzizjanAyupov_leo
    @AzizjanAyupov_leo Před 3 lety +2

    The accent...

  • @Mike-uk2oq
    @Mike-uk2oq Před 2 lety

    High performance in a GC language lol

    • @agonzen6390
      @agonzen6390 Před 2 lety +4

      Yes. You can reduce GC pressure by allocating more on the stack instead of the heap -> more performance. Also C# is not slow even though it has a GC.

    • @krccmsitp2884
      @krccmsitp2884 Před rokem +5

      Some people laugh, others know better. 🤷

  • @ChristopherSalisburySalz
    @ChristopherSalisburySalz Před 3 lety +2

    Thumbnail of this video looked like a female programmer was presenting!