
In this lecture you will get:
Quick author biography
What is the goal of this course
Course overview, a summary of the sections and lectures
In this lecture you will get:
How this course is organized
Motivation for attending this course
In this lecture you will get:
What is benchmarking
Benchmarking advantages
In this lecture you will get:
What are the pre-requisites to follow this course
Software that will be used to benchmark applications
In this lecture you will get:
How to ask questions when you are stuck
Get to know Q&A
Drop a feedback about the content
In this lecture you will get:
How to install .NET SDK
In this lecture you will get:
How to install Visual Code
In this lecture you will get:
How to install Git
In this lecture you will get:
How to install Docker
In this lecture you will get:
How to install Java
In this lecture you will get:
How to install Postman
In this lecture you will get:
Other tools to be installed later as we move on
In this lecture you will get:
What is performance
Efficiency as a quality aspect
In this lecture you will get:
Why performance matters
What are non-functional requirements
Examples of non-functional requirements
In this lecture you will get:
High-level and fine-grained metrics
Examples of metrics to track performance
In this lecture you will get:
What is a Benchmark
Benchmarking process
AS-IS and TO-BE measurements/scenarios
Benchmarking in application versus infrastructure
In this lecture you will get:
Why benchmarking is necessary
Questions answered by benchmarking
In this lecture you will get:
Reasons to start a benchmark
Reasons to not start a benchmark
In this lecture you will get:
Baselining
AS-IS and proposed TO-BE
Baselining application
In this lecture you will get:
What metrics should you measure
In this lecture you will get:
DEBUG mode versus RELEASE mode
Considerations on VMs and docker containers
Production-like environments
In this lecture you will get:
Microbenchmarking
Macrobenchmarking
Mocking dependencies
In this lecture you will get:
Tools to benchmark applications
In this lecture you will get:
Benchmarking with Stopwatch class
Practical demonstration
In this lecture you will get:
What is BenchmarkDotNet
In this lecture you will get:
Which projects use BenchmarkDotNet
In this lecture you will get:
Elapsed time and memory allocation results
Practical demonstration
In this lecture you will get:
How to sort results with Orderer
How to rank results with RankColumn
Customize columns with ManualConfig
In this lecture you will get:
Practical demonstration
How to evaluate results
Artifacts folder
In this lecture you will get:
Header information
Summary Columns
In this lecture you will get:
TargetFramework versus TargetFrameworks tag
.NET runtime commands
In this lecture you will get:
Accurate results with warmupCount and iterationCount
In this lecture you will get:
Throughput strategy
Pilot and warm-up stages
Cold start and steady-state
Monitoring strategy
Reducing warnings with invocationCount
Microbenchmark challenge
In this lecture you will get:
What is Postman
Postman Runner
Practical demonstration
In this lecture you will get:
What is Vegeta
Practical demonstration
Docker container considerations
In this lecture you will get:
What is Bombardier
Practical demonstration
In this lecture you will get:
What is JMeter
GUI mode versus CLI mode
Practical demonstration
In this lecture you will get:
Find bottlenecks to optimize code
How profiling tools work
Some profiling tools
In this lecture you will get:
Readable code versus Optimized/complex code
Impact of complex code in business
In this lecture you will get:
What is continuous integration
Continuous integration process
Continuous delivery
In this lecture you will get:
What is observability
Goals of observability
Categories of tools
Open-source and commercial of monitoring tools
In this lecture you will get:
monitoring tools features
timeseries database (TSDB)
push-based versus pull-based
open-source monitoring tools
In this lecture you will get:
Tracing tools goal
What is a sample
Sampling
Open-source tracing tools
In this lecture you will get:
What you can do next
Have you tried to learn Benchmarking before?
Perhaps you find yourself trying to follow a tutorial and get stuck.
In other cases, the different authors may present to you the benchmarking process with subtle command and code variations, but you have no clue what they are for.
You may stumble on articles that are difficult to follow. They do not provide you structured information of what is going on under the hood or a deep understanding of the .NET framework.
Now imagine the oddest edge case: you already finished building your benchmarking, you can run it fine but then when it comes to run it another time, the results differ altogether from the ones you got earlier. You have no idea of the factors that make your benchmark process generate so many values out of your expectations.
You might be working on a critical section of code in your .NET application or microservice, and you need to measure different code approaches to figure which ones make your code run as fast as possible.
Does that sound familiar to you?
Well, you are on the right track!
I built this course to show you how you can build and run benchmarks with a better understanding of the fundamentals.
You will have hands-on labs here where you can download the projects to get started testing yourself the benchmarking process using your favorite code editor.
I've mapped out everything you need to know about Benchmarking .NET applications in an interactive easy-to-follow package. This course is designed to get you up and running, in a couple of days.
Here you will understand the fundamentals, perform the experiments to make correct conclusions based on the raw data provided in benchmarking results.
If you want to be aware of benchmarking good practices, this training is a great way to get started.
Several big companies, including Microsoft, Elasticsearch, Google, are constantly using benchmarking to guarantee applications have no performance degradation and measurements are reproducible.
This constant concern on performance quality makes applications more reliable through the eyes of the customer, making company solutions look more professional.