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

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.

Пікірлер: 35

  • @kyleolsen5441
    @kyleolsen54414 жыл бұрын

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

  • @amosegel2510
    @amosegel25102 жыл бұрын

    Very good presentation, thanks!

  • @caioavidal
    @caioavidal3 жыл бұрын

    This is gold

  • @obiwan_smirnobi
    @obiwan_smirnobi Жыл бұрын

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

  • @Southpaw101
    @Southpaw1012 жыл бұрын

    GREAT talk, thank you!

  • @user-te4io9hm4f
    @user-te4io9hm4f2 жыл бұрын

    Excellent! Thanks.

  • @DrExpresso
    @DrExpresso3 жыл бұрын

    Great talk

  • @vikasdangwal3080
    @vikasdangwal30804 жыл бұрын

    this is one my fav video ever :)

  • @DevNerdKonradKokosa

    @DevNerdKonradKokosa

    2 жыл бұрын

    Thank you!

  • @dinozaurwrs
    @dinozaurwrs3 жыл бұрын

    Jah Bless! Knoweledge is power!

  • @pr0l0gix
    @pr0l0gix29 күн бұрын

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

  • @Mr4hitch
    @Mr4hitch3 жыл бұрын

    Thanks :)

  • @Estrav.Krastvich
    @Estrav.Krastvich Жыл бұрын

    Awesome really.

  • @TedFanat
    @TedFanat3 жыл бұрын

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

  • @titusariel84

    @titusariel84

    2 жыл бұрын

    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

    2 жыл бұрын

    @Titus Ariel Instablaster =)

  • @titusariel84

    @titusariel84

    2 жыл бұрын

    @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

    2 жыл бұрын

    @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

    2 жыл бұрын

    @Titus Ariel Happy to help :)

  • @rusmaakatupal4723
    @rusmaakatupal47238 ай бұрын

    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

  • @letmewatch27
    @letmewatch273 жыл бұрын

    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

    2 жыл бұрын

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

  • @gamedev_expert
    @gamedev_expert Жыл бұрын

    Now we have SkipLocalsInit attribute

  • @koorshashirazi2037
    @koorshashirazi20373 жыл бұрын

    👌👌👌👍

  • @radoslavivanov8176
    @radoslavivanov81763 жыл бұрын

    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...

  • @IshamMohamedIqbal

    @IshamMohamedIqbal

    3 жыл бұрын

    You should read his book.

  • @AzizjanAyupov_leo
    @AzizjanAyupov_leo3 жыл бұрын

    The accent...

  • @typedef_

    @typedef_

    3 жыл бұрын

    eastern european

  • @DevNerdKonradKokosa

    @DevNerdKonradKokosa

    2 жыл бұрын

    @@typedef_ Indyyyed ;)

  • @Mike-uk2oq
    @Mike-uk2oq2 жыл бұрын

    High performance in a GC language lol

  • @agonzen6390

    @agonzen6390

    2 жыл бұрын

    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

    Жыл бұрын

    Some people laugh, others know better. 🤷

  • @ChristopherSalisburySalz
    @ChristopherSalisburySalz3 жыл бұрын

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

  • @DevNerdKonradKokosa

    @DevNerdKonradKokosa

    2 жыл бұрын

    Now I have even longer hairs ;)

  • @tharindu79

    @tharindu79

    2 жыл бұрын

    Have to confess, that's why I'm here :D