C# 10 Performance Playbook
https://www.pluralsight.com/courses/c-sharp-10-performance-playbook
by Chris Behrens
Mod 1: Course Overview
- Course Overview
Mod 2: Understanding the Role of Performance
- Introduction
- Optimizing for the Developer
- Premature Optimization and Goldplating
- All optimization is premature optimization unless it's just-in-time
- Introducing BenchmarkDotNet
- .NET library for benchmarking
- Demo: Using BenchmarkDotNet
- you need to add a console app and add an attribute
- Run your benchmarks in Release mode, however you do them
- Summary
Mod 3: Optimizing C# Code Line-by-line: Part 1
- Introduction
- Demo: Build Strings Effectively
- explains why StringBuilder is needed and how it works internally
- instead of sb.Append(" "), do sb.Append(' '), it is more performant
- Demo: Picking Strings Apart
- uses ReadOnlySpan
- Demo: String Comparison
- there is no one best way to compare string in c#, when taking into consideration length of string and care insensitivity
- Demo: For Loops and Foreach
- Demo: Classes, Structs, and Records
- explains when to use a Struct over a Class
- Mutability comes with a price
- - working with readonly data is almost always faster
Mod 4: Optimizing C# Code Line-by-line: Part 2
- Demo: Direct Assignment
- Demo: Permissions and Keeping Exceptions Exceptional
- Demo: Using Performance Unit Tests
- you can use benchmarkdotnet in a unit test
- Demo: Choosing Data Types Wisely
- take care when using Decimal
- Demo: The Date Type
- Wrap-up
Mod 5: Understanding How Things Work to Improve Performance
- Introduction
- Intermediate Language Code
- Demo: Look at the IL
- demo of ildasm command line utility
- Databases and Indexing
- Demo: A SQL Server Query
- Demo: The Profile Tools
- Demo: Understand LINQ Query Execution Location
- What Debug vs. Release Really Means
- benchmarks in debug configuration are pretty much useless.
- Wrap-up
Mod 6: Architecture for Speed
- Introduction
- Time-shifting
- Planetary Scale Architecture
- Course Wrap-up
Comments
Post a Comment