A Complete .NET Developer's Guide to Span with Stephen Toub

  Рет қаралды 38,891

dotnet

dotnet

Күн бұрын

Scott and Stephen are back with another entry in the Deep .NET series, this time looking deep at System.Span enabling the representation of contiguous regions of arbitrary memory, regardless of whether that memory is associated with a managed object, is provided by native code via interop, or is on the stack. And it does so while still providing safe access with performance characteristics like that of arrays. Let's go deep on Span.
Chapters:
00:00:00 Exploring the Impact and Evolution of Span in Software Engineering
00:03:09 Deep Dive into Assembly Code and its Translation
00:04:15 Exploring Methods to Disassemble and Analyze C# Function
00:05:43 Exploring the JIT Compiler and Assembly Code Optimization
00:12:03 Understanding Arrays and Pointers in Programming
00:16:46 Understanding Memory Management and Array Access in Programming
00:24:35 Discussing the Cost and Implementation of Memory Management Functions
00:26:23 Exploring the Intersection of Performance, Maintenance, and Interop in Programming
00:31:51 Understanding the Concept and Impact of Span in Computer Science
00:39:28 Discussion on Memory Protection and Immutability in Unix and Windows
00:45:59 Implementing and Understanding the Concept of Ref Functions in C#
00:51:08 Exploring JavaScript Optimal Notation and Memory Management
00:54:28 Exploring the Implementation and Functionality of Span in Programming
00:59:53 The Evolution and Impact of Span in .NET Development
Resources:
Documentation: learn.microsoft.com/dotnet/st...
Connect with .NET:
Blog: aka.ms/dotnet/blog
Twitter: aka.ms/dotnet/twitter
TikTok: aka.ms/dotnet/tiktok
Mastodon: aka.ms/dotnet/mastodon
LinkedIn: aka.ms/dotnet/linkedin
Facebook: aka.ms/dotnet/facebook
Docs: learn.microsoft.com/dotnet
Forums: aka.ms/dotnet/forums
🙋‍♀️Q&A: aka.ms/dotnet-qa
👨‍🎓Microsoft Learn: aka.ms/learndotnet
#dotnet

Пікірлер: 141
@barrysphone
@barrysphone 17 күн бұрын
This series is awesome, please keep it going for a long time. Stephen's knowledge is incredible and his enthusiasm is infectious. The dynamic between Scott and Stephen make this series unmissable.
@marklord7614
@marklord7614 26 күн бұрын
Man, these guys are killing it with the series -- great topics.
@1camper69
@1camper69 24 күн бұрын
These talks from Stephen are truly the best dotnet content available. Stephen has the knowledge and goes next level in explaining it extremely clear but simple and is just a joy to listen to.
@BloodHaZaRd666
@BloodHaZaRd666 26 күн бұрын
Like video at 0 seconds just because of @Stephen Toub
@akeemaweda1716
@akeemaweda1716 26 күн бұрын
Not you alone. I did exact same thing, because it's the wizards show!
@asedtf
@asedtf 26 күн бұрын
Like this comment at 1 second because I had to stop to like the video first because of Stephen Toub
@thomastaylor648
@thomastaylor648 25 күн бұрын
We need more Stephen Toub's
@The.WorldVentures
@The.WorldVentures 26 күн бұрын
How does someone even become as great as Stephen Toub, man the guy knows his stuff.
@jackkendall6420
@jackkendall6420 25 күн бұрын
You do it as your fulltime job for multiple decades, haha.
@kaolyfe-cw2cm
@kaolyfe-cw2cm 24 күн бұрын
Pray enough to the coding gods...j/k 😄
@Tamazakis
@Tamazakis 26 күн бұрын
TimeSpan well spent! Thank you :)
@CuriouslyContent
@CuriouslyContent 26 күн бұрын
I can't get enough of this content :) Who would have thought that an hour long video on spans is literally the most exciting thing on my feed this week!
@MatteoGariglio
@MatteoGariglio 26 күн бұрын
This series of videos featuring Stephen Toub is truly remarkable and incredibly interesting. Thank you!
@FICHEKK
@FICHEKK 26 күн бұрын
Learning from Stephen Toub is such a pleasure, man is a .NET master!
@lordtony8276
@lordtony8276 13 күн бұрын
"Have you got anything without Span?" "Well, there's Span Span List and Span, that's not got much Span in it."
@p.j.wilkins1321
@p.j.wilkins1321 6 күн бұрын
Lobster Thermidor aux crevettes with a Mornay sauce, garnished with truffle pâté, brandy, and a fried egg on top, and Span.
@ElSnakeObwb
@ElSnakeObwb 26 күн бұрын
Love this series. keep it up
@TheChonsey
@TheChonsey 25 күн бұрын
Awesome content. Please make a video on System.IO.Pipelines
@weirdwyrd2017
@weirdwyrd2017 20 күн бұрын
That floppy drive jumper comparison got me. The assembly I could follow, ain't never heard of a jumper before. Today I learned a couple things! Great content!
@onodera3964
@onodera3964 4 күн бұрын
Great series, loving it. Some of the topics I would love to see covered next: - how equality works (intermediate) - how the allocator and and the GC work (expert) - how exceptions work (expert) - how analyzers work - how generators work - how JIT works
@behboodik
@behboodik 26 күн бұрын
Every video with Stephen in it is a treasure
@fieryscorpion
@fieryscorpion 25 күн бұрын
This is amazing! Now I need a video on Multithreading and Parallel Processing from Scott and Stephen!
@MichalMracka
@MichalMracka 14 күн бұрын
Dataflow...
@lejoyke
@lejoyke 6 күн бұрын
Although I don't understand some things, I still feel excited. Please continue to keep up
@lstutzman
@lstutzman 26 күн бұрын
Fantastic content guys!! Can’t wait for the next one. A deep dive into the GC would be cool
@BryanKelly
@BryanKelly 19 күн бұрын
How does Span relate to Memory? I'd love to see a follow up to this that gets into that detail.
@user-dc9zo7ek5j
@user-dc9zo7ek5j Күн бұрын
Memory is on the heap, Span is stack only. You can use Memory just like any other non-ref type, but Span can be used only within the function. Also, Memory can be used in async await, while the other cannot (because of stack only constraint). Memory behaves like Span, but it is much closer to ArraySegment without being array only type. I don't think I have used this type anywhere, but I have seen it being used around the Stream class.
@sanampakuwal
@sanampakuwal 26 күн бұрын
WOW!!! Love these series, please don't stop!
@DavidSmith-ef4eh
@DavidSmith-ef4eh 17 сағат бұрын
I didn't plan on watching this til the end... very interesting and very well presented.
@MarkRendle
@MarkRendle 25 күн бұрын
It's crazy how simple Span is on the inside considering the impact it's had on .NET in recent years.
@amrswalha
@amrswalha 26 күн бұрын
Scott and Stephen are doing a great job, all the best.
@dlandi
@dlandi 24 күн бұрын
Scott and Stephen: Outstanding series!
@Matt-tp9lh
@Matt-tp9lh 6 күн бұрын
Awesome series! Please do a video on the async runtime of c# next about how the default task scheduler works, especially interested in knowing how tasks get scheduled and as developers using the async runtime how do we avoid common pitfalls of inefficient patterns
@delphiguy23
@delphiguy23 26 күн бұрын
I saw Stephen Toub, I clicked.... freaking awesome presentation learned a lot from this.
@superpcstation
@superpcstation 26 күн бұрын
Please don't stop making these!
@JavedaliShaikh-yy1jr
@JavedaliShaikh-yy1jr 12 күн бұрын
Just Brilliant! Keep making more of these.. Thanks.
@draganradovac8803
@draganradovac8803 14 күн бұрын
Scott and Stephen are a great combo. Looking forward to future presentations.
@freierNamen
@freierNamen 25 күн бұрын
Oh no, it happened again! The video is over and I've already seen all parts of the series😢😂 Thank you so much! Love every second of it...
@mey33am
@mey33am 26 күн бұрын
Keep posting Stephan! We need more content like this, Thank You
@dy0mber847
@dy0mber847 26 күн бұрын
Incredible as always
@fatlumlatifi2897
@fatlumlatifi2897 26 күн бұрын
Excellent video, please keep Mr. Toub on a few more episodes. As of topics to cover if possible please make video on how to interop or preferably make binding of C libraries on .NET.
@wimzi9887
@wimzi9887 19 күн бұрын
I wanna watch Stephen build a complex project from start to finish. I would love to see how he works.
@colhountech
@colhountech 25 күн бұрын
Best Content On youtube today. I love the relaxed page and the high intensity content. It's almost an anti pattern of all the click-bate, gapless, b-roll crap on youtube today. If stephen does a workshop of stuff like this in NDC London next year, I'll drop $2000 to attend like when Dave and Damiean did the early workshops on .net core in circa 2017.
@SajadJalilian
@SajadJalilian 23 күн бұрын
Dotnet has many layers of abstractions in a good way. They are like magic. Watching this series is like those videos in which a magician explains how they are doing their tricks under the hood. I love it.
@LasseVagstherKarlsen
@LasseVagstherKarlsen 25 күн бұрын
Man, you guys nailed it as usual, absolutely love these videos. GC next? 🙂
@user-yf8fi7lc5s
@user-yf8fi7lc5s 26 күн бұрын
Like in the good old days of Channel 9 👍
@levimatheri7682
@levimatheri7682 22 күн бұрын
Stephen Toub is my spirit animal. So smart!
@preet1979
@preet1979 24 күн бұрын
This was a great video. All I need now is another deep dive video into Memory to complete my understanding of it. Thanks again for such a great video.
@tirgo007
@tirgo007 26 күн бұрын
Great stuff! Looking forward to the next one.
@enijburg
@enijburg 26 күн бұрын
Another great session! Keep them coming 🎉
@SimoLPers
@SimoLPers 18 күн бұрын
The series is really great! Thanks for sharing! ME me I'd personally love to see how what lies under the hood of reflection.
@timur2887
@timur2887 22 күн бұрын
Thank you very much! Great content!
@MehrdadSoltani-qn2ny
@MehrdadSoltani-qn2ny 26 күн бұрын
one of the best demo/tutorials I have ever seen about Span.
@sgwong513
@sgwong513 21 күн бұрын
its the only video I need to watch to learn what is Span in .net
@norm6096
@norm6096 26 күн бұрын
You guys are awesome combo, thanks for the videos! :)
@hashdynamics978
@hashdynamics978 24 күн бұрын
my new favorite tv show. Love it!
@DavidPereira-lc1yq
@DavidPereira-lc1yq 25 күн бұрын
This is freaking awesome!!! Right from the source, you should build a comprehensive "deep C# course" with all of this, for people that would like to purse perf related topics. Right now, I don't think there's a place where you can do that. It's basically spread around books, courses, blogs, etc etc. Really nice this one.
@tayyabshaikh3286
@tayyabshaikh3286 20 күн бұрын
Pure Knowledge Sharing.. & No dumb podcast like others.. Truly Marvelous. ♥
@alexisfibonacci
@alexisfibonacci 25 күн бұрын
I haven't seen Bart De Smet in years. Is he available to talk about IObservable? Why has there been less emphasis on it in recent times? Also IQbservable..
@AskFiqri
@AskFiqri 25 күн бұрын
This is a treat
@ChaoticNeutral6
@ChaoticNeutral6 21 күн бұрын
That was wild, I definitely want to see a part 2. Would also be cool to go through stuff like MemoryMarshall and its methods
@SlackwareNVM
@SlackwareNVM 26 күн бұрын
I'm interested in the meaning behind that last constructor check. Also, what are the tradeoffs from the alternative implementations you mentioned? Would love to know more about Memory as well. I don't yet have proper intuition of how to use it.
@JakobStrasser
@JakobStrasser 26 күн бұрын
Thanks, very informative!
@uitumenj8380
@uitumenj8380 26 күн бұрын
I’m value added :))) thank you guys!
@djchrisi
@djchrisi 25 күн бұрын
28:30 unsafe ist really a great keyword because it truly scares developers off ;)
@imranhussain8700
@imranhussain8700 21 күн бұрын
Async/Await LINQ RegEx Span 😀😀😀😀😀😀😀😀😀😀😀😀😀😀 Loving it. Thank you very much. Great Content.
@GuildOfCalamity
@GuildOfCalamity 26 күн бұрын
Keep doing these with Stephen; would like to see more roll-your-own content, like the Async/Task video.
@davidmasterson883
@davidmasterson883 26 күн бұрын
I just love these videos!
@KvapuJanjalia
@KvapuJanjalia 8 күн бұрын
Looking forward to deep dives into memory of T, sequence of T, pipes and buffers.
@dy0mber847
@dy0mber847 26 күн бұрын
Show must go on
@fedayka
@fedayka 25 күн бұрын
The worst thing about this show is its time constraint! Great content guys! Amazing :)
@nessitro
@nessitro 26 күн бұрын
I love this! Tanmirt!
@rodrigolima206
@rodrigolima206 22 күн бұрын
Very nice explanation thanks a lot. I would like to see something related to streams and how they work I was always curious about that. If possible, of course. Thanks again .
@AndrzejPauli
@AndrzejPauli 24 күн бұрын
StephenT and ScottH - nothing is better 🙂
@lolroflxd
@lolroflxd 26 күн бұрын
Awesome ❤
@Corvinaification
@Corvinaification 26 күн бұрын
Amazing!
@Aaron31056
@Aaron31056 22 күн бұрын
Amazing
@SahilDesai-sx3sn
@SahilDesai-sx3sn 25 күн бұрын
knowledge SPANNING multiple videos.
@yonatan2608
@yonatan2608 25 күн бұрын
thank youuuu
@mrqbboy
@mrqbboy 25 күн бұрын
I'm going to repeat myself, but thanks Scott and Stephen.
@evarlast
@evarlast Күн бұрын
Best C# feature in 10-15 yrs.
@heischono4917
@heischono4917 10 күн бұрын
I wonder what Scott is using a floppy for? :D Wonderful video, I hope we get more f this kind. Greetings from Norway :)
@WizardofWestmarch
@WizardofWestmarch 25 күн бұрын
At 38:48 Toub is talking about how if you have a readonly span it will put it in the data block of the binary. Do things like ImmutableArray get the same benefit or is the JIT compiler extra aware of ReadOnlySpan to do that optimization?
@jr.BoarOfGold
@jr.BoarOfGold 26 күн бұрын
I leave my instant like
@yonatan2608
@yonatan2608 22 күн бұрын
These kind of videos should be in 202 schools.
@schlott1970
@schlott1970 26 күн бұрын
My biggest question was how, using span, was the compiler able to keep such a tight loop when enumerating? Also could have mentioned that span does not allocate any memory or copy stuff around! This was a good one Scott/stephen! Thankyou
@davidantolingonzalez4929
@davidantolingonzalez4929 23 күн бұрын
It does allocate memory for the Span (two fields), but it does on the stack, not on the heap. Also, since it only stores an address of memory and an int, no copy of data is needed. The tight loop is achieved because T reference is basically a pointer so for enumerating the only thing it has to do is add "one" to the pointer times length, exactly the same as an array.
@isaacayodejii
@isaacayodejii 25 күн бұрын
too gooood!
@dlandi
@dlandi 24 күн бұрын
Riffing off "Naming is hard": Spam Hmmm.
@jackkendall6420
@jackkendall6420 25 күн бұрын
rubbed my hands together and cackled when I saw this
@anm3037
@anm3037 24 күн бұрын
Any interface for all collections (Array, List, etc) that can be converted to Span
@ivandrofly
@ivandrofly 16 күн бұрын
34:31 - Pause 39:00 - utf8 syntax from c# 11
@dsellers
@dsellers 24 күн бұрын
👏
@YuriBez2023
@YuriBez2023 24 күн бұрын
@37:11 - Stephen's fingers were off-by-one there.
@robl39
@robl39 24 күн бұрын
Can you guys please deep dive the csc or the CLR?
@Cymricus
@Cymricus 26 күн бұрын
the people in chat being negative about copilot are gonna get behind if they don’t use the very powerful tools at our disposal. you really don’t want to be behind in a world with generative AI.
@StackOverflowMan
@StackOverflowMan 11 күн бұрын
"readonly ref struct" appears in C# 8, while Span appreared earlier in .net core 2, and than Span was just a struct. Would be interesting to see how it evolve.
@user-od4ce8pe3u
@user-od4ce8pe3u 25 күн бұрын
Idea for next video: exception under the hood
@davidelizalde3844
@davidelizalde3844 26 күн бұрын
Nice Invensible t-shirt
@kamlezadeh
@kamlezadeh 11 күн бұрын
Can we have a video explaining ArrayPool and MemoryPool please?
@paulscarlett4346
@paulscarlett4346 26 күн бұрын
"Please - May I have more?"
@__angle
@__angle 24 күн бұрын
🥰
@kishananem
@kishananem 25 күн бұрын
Hello Scott/ Stephen Please do videos about algorithms used in framework. Please like comments who interested in this. They may do video.
@ivandrofly
@ivandrofly 16 күн бұрын
At the beginning of the video, while using Rider and I'm like it's still hard to see the IL code in Visual Studio 😆😆
@rham1985
@rham1985 Күн бұрын
think i've heard is as: The two hardest things for programmers: * Naming things * Cache invalidation * Off by one errors
@imranhussain8700
@imranhussain8700 20 күн бұрын
Tell us in the comment what you like and what you don't like. There are five videos now and I am still figuring out what are don't like. is there anything in these videos that we don't like, I don't think so.
@dskim2459
@dskim2459 25 күн бұрын
why dooes audio quality from .net never improve? please give them a good mic
@skarcade
@skarcade 24 күн бұрын
How many times was he told to zoom in during this video? 🔍😂
@tedchirvasiu
@tedchirvasiu 20 күн бұрын
C##
Deep Dive into RegEx with Stephen Toub
1:09:31
dotnet
Рет қаралды 17 М.
Writing async/await from scratch in C# with Stephen Toub
1:06:02
когда достали одноклассники!
00:49
БРУНО
Рет қаралды 4,1 МЛН
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 48 МЛН
S5. EP. 5 - Deep Dive into the 5 C's: Understanding Credit
26:10
Oak Street Funding
Рет қаралды 4
"Highly Technical Talk" with Hanselman and Toub | BRK194
46:11
Microsoft Developer
Рет қаралды 27 М.
C#’s Functional Journey - Mads Torgersen - NDC Sydney 2024
1:00:41
NDC Conferences
Рет қаралды 10 М.
A Simple Kafka and Python Walkthrough
11:34
Quix
Рет қаралды 3,4 М.
WHY did this C++ code FAIL?
38:10
The Cherno
Рет қаралды 137 М.
Deep Dive on LINQ with Stephen Toub
1:23:59
dotnet
Рет қаралды 50 М.
An even DEEPER Dive into LINQ with Stephen Toub
1:20:09
dotnet
Рет қаралды 23 М.
"Stop Using Async Await in .NET to Save Threads" | Code Cop #018
14:05
Main filter..
0:15
CikoYt
Рет қаралды 1,4 МЛН
How To Unlock Your iphone With Your Voice
0:34
요루퐁 yorupong
Рет қаралды 19 МЛН
5 НЕЛЕГАЛЬНЫХ гаджетов, за которые вас посадят
0:59
Кибер Андерсон
Рет қаралды 1,4 МЛН
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 1,1 МЛН