Highlights
Course Overview
Led by some of the best consultants on the planet, this course is aimed at .NET application developers who would like to gain important advanced skills to help them develop and support their applications more efficiently and productively.
The course instructors are hand picked to ensure they can add value to the most demanding developers..
The programme is made up of 3 days Performance and 2 days debugging. Each part can be taken separately, if required.
Improving the Performance of .NET Applications
In this three day instructor-led course you will become acquainted with performance measurement tools, including profilers, ETW, and performance counters. You will use these tools in a series of practical hands-on labs to improve the memory allocation patterns, GC behaviour, and – of course – speed of .NET applications. Together with practical information on performance measurement, the course delivers deep internal knowledge of the CLR, focusing on type internals, garbage collection, unsafe code. Armed with both theoretical and practical knowledge about the CLR, you will be able to measure and systematically improve the performance of your .NET applications.
Target audience: experienced C# or VB.NET developers
Course Details
Course Detail
Topics:
- Performance Measurement
- Performance metrics
- Performance counters
- Event Tracing for Windows
- PerfView
- Visual Studio profiler
- CLR Profiler
- Visual Studio Concurrency Visualizer
- ANTS Memory Profiler
- LAB: Profiling memory allocations
- LAB: Profiling memory leaks
- LAB: Profiling execution time and cache misses
- CLR Internals
- Type memory layout
- Reference type overhead
- Correctly implementing value types
- Mark and sweep garbage collection
- GC flavors
- Generations
- Finalization
- Miscellaneous
- C# pointers
- Marshal.PtrToStructure and other approaches
- Code generation vs. reflection
Debugging .NET Applications
In this two day instructor-led course you will learn about all the ways to debug your .NET applications in development and in production. You will explore and practice the process of creating crash dumps, analysing them, and obtaining the root cause for exceptions and hangs. You will also experiment with more difficult problems, such as memory leaks, deadlocks, and finalisation-related bugs. At the end of the course you will be equipped with the knowledge and tools to debug .NET applications in the field, and improve your debugging experience during development as well.
Target audience: experienced C# or VB.NET developers
Topics:
- Fundamentals
- Debugging symbols
- Basics of x86/x86-64 assembly language
- Dump files
- Capturing dump files
- Procdump
- Automatic dump generation with WER/AeDebug
- Analyzing dumps in Visual Studio
- LAB: Creating and opening crash dumps
- WinDbg and SOS
- SOS
- Basic WinDbg commands
- Object inspection with SOS
- Memory analysis with SOS
- Synchronization analysis with SOS and SOSEX
- LAB: Crash analysis
- LAB: Memory leak analysis
- LAB: Deadlock analysis
- Advanced Topics (if time permits)
- Deadlock detection with Wait Chain Traversal
- Identifying resource leaks and exceptions with Process Monitor
- Debugging service startup with GFlags
Who should attend
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022