DNWSH - Version: 2.3..NET Performance and Debugging Workshop

Similar documents
PERFVIEW..NET runtime performance and ETW event analysis tool

ProdDiagNode - Version: 1. Production Diagnostics for Node Applications

C# Programming in the.net Framework

Operating Systems. read the warning about the size of the project make sure you get the 6 th edition (or later) of the book

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.

Microsoft Windows HPC Server 2008 R2 for the Cluster Developer

Developing Windows Communication Foundation Solutions with Microsoft Visual Studio 2010

Lecture 1. CMSC 412 S17 (lect 1)

Course Hours

SELF-AWARE APPLICATIONS AUTOMATIC PRODUCTION DIAGNOSIS DINA GOLDSHTEIN

Learn to develop.net applications and master related technologies.

Systems software design. Software build configurations; Debugging, profiling & Quality Assurance tools

Programming in Visual Basic with Microsoft Visual Studio 2010

MS-20487: Developing Windows Azure and Web Services

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

Performance Tuning & Optimizing SQL Databases Microsoft Official Curriculum (MOC 10987)

Optimizing Your Android Applications

OPC UA C++ Toolkits Release Notes November 2018

Java Performance: The Definitive Guide

NUMA in High-Level Languages. Patrick Siegler Non-Uniform Memory Architectures Hasso-Plattner-Institut

.NET Memory. Dump Analysis. Version 2.0. Dmitry Vostokov Software Diagnostics Services

"Charting the Course to Your Success!" MOC A Developing High-performance Applications using Microsoft Windows HPC Server 2008

[MS20487]: Developing Windows Azure and Web Services

Vision V sion o n I n n 1975 V sion o n T o T d o a d y A c o c m o pu p t u er e o n o n e v e e v r e y E po p w o er e p e p o e p o l p e

[MS10987A]: Performance Tuning and Optimizing SQL Databases

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Java performance - not so scary after all

A new Mono GC. Paolo Molaro October 25, 2006

Programming in C# for Experienced Programmers

PROGRAMMING WITH THE MICROSOFT.NET FRAMEWORK USING MICROSOFT VISUAL STUDIO 2005 Course No. MS4995A 5 Day PREREQUISITES COURSE OUTLINE

Managed runtimes & garbage collection

JamaicaVM Java for Embedded Realtime Systems

10265: Developing Data Access Solutions with Microsoft Visual Studio 2010 Duration: 5 Days Method: Instructor-Led

Memory management has always involved tradeoffs between numerous optimization possibilities: Schemes to manage problem fall into roughly two camps

Run-Time Environments/Garbage Collection

Using Intel VTune Amplifier XE and Inspector XE in.net environment

Windows Presentation Foundation Visual Studio.NET 2008

Java Performance Tuning and Optimization Student Guide

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści

Developing Data Access Solutions with Microsoft Visual Studio 2010

C and C++ Secure Coding 4-day course. Syllabus

MOC 6232A: Implementing a Microsoft SQL Server 2008 Database

6232A - Version: 1. Implementing a Microsoft SQL Server 2008 Database

Vertical Profiling: Understanding the Behavior of Object-Oriented Applications

DOT NET Syllabus (6 Months)

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java)

Jackson Marusarz Software Technical Consulting Engineer

Garbage Collection. Steven R. Bagley

Creating and Running Your First C# Program

EEE-425 Programming Languages (2013) 1

DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 ADVANCED SOLUTIONS. Course: 20489A; Duration: 5 Days; Instructor-led

New Java performance developments: compilation and garbage collection

SQL Server Administration 10987: Performance Tuning and Optimizing SQL Databases. Upcoming Dates. Course Description.

Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#)

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies

Glacier: A Garbage Collection Simulation System

C# Syllabus. MS.NET Framework Introduction

Intel VTune Amplifier XE

Course Outline. Performance Tuning and Optimizing SQL Databases Course 10987B: 4 days Instructor Led

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

High-Level Language VMs

Cloud & Datacenter Monitoring with System Center Operations Manager

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides

Software Development & Education Center Complete.NET 4.5

Myths and Realities: The Performance Impact of Garbage Collection

ClearSpeed Visual Profiler

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

Profiling & Optimization

Automating Problem Analysis and Triage. Sasha

Course Description. Audience. Module Title : 20483B: Programming in C# Duration : 5 days. Course Outline :: 20483B ::

Windows 7 Training for Developers

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Third Teaching Hour: 80(32+48)

Concurrent Garbage Collection

Need to Node: Profiling Node.js Applications

Garbage Collection. Hwansoo Han

C++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

EEE-425 Programming Languages (2013) 1

Course Outline. Cloud & Datacenter Monitoring with System Center Operations Manager Course 10964B: 5 days Instructor Led

Operating- System Structures

.NET Secure Coding for Client-Server Applications 4-Day hands on Course. Course Syllabus

Complex, concurrent software. Precision (no false positives) Find real bugs in real executions

Inside the Garbage Collector

Expert C++/CLI:.NET for Visual C++ Programmers

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days

Encyclopedia of Crash Dump Analysis Patterns

.Net. Course Content ASP.NET

Memory & Thread Debugger

Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning

Profiling & Optimization

Limits of Parallel Marking Garbage Collection....how parallel can a GC become?

CSE 591: GPU Programming. Programmer Interface. Klaus Mueller. Computer Science Department Stony Brook University

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations

DE-2310 Developing Web Applications Using Microsoft Visual Studio 2008 SP1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

Using the Singularity Research Development Kit

Manual Allocation. CS 1622: Garbage Collection. Example 1. Memory Leaks. Example 3. Example 2 11/26/2012. Jonathan Misurda

Transcription:

DNWSH - Version: 2.3.NET Performance and Debugging Workshop

.NET Performance and Debugging Workshop DNWSH - Version: 2.3 8 days Course Description: The.NET Performance and Debugging Workshop is a practical workshop for experienced.net developers willing to develop high-performance.net applications and debug them in the development and production environments. In this eight-day workshop, you will obtain practical knowledge about the performance characteristics of the.net framework and common language constructs; learn about the relevant internal details of the.net type system, garbage collector and synchronization mechanisms; and practice debugging scenarios that arise in the development or production environment of.net applications. This workshop is limited to 8-12 participants to ensure that instructor attention is properly distributed during the practical labs, and to provide an opportunity for specific questions to be brought up after classroom hours. Intended audience: This workshop is intended for experienced.net developers with working knowledge of C#. Prerequisites: Working knowledge of C# 3.0 Working knowledge of the.net Framework, including threading, synchronization mechanisms, application domains Familiarity with the C++ programming language (preferred but not a must) Familiarity with operating systems concepts: paging, virtual memory, processes and threads Familiarity with computer organization concepts: CPU cache, registers, main memory

Objectives: Develop high-performance.net applications Expose custom performance and monitoring data from.net applications Analyze the performance of existing applications and tune them appropriately Diagnose memory leaks, deadlocks, crashes and other scenarios Use a variety of external tools to monitor your application's behavior in production environments Topics:.NET Performance Module 2 - Performance Measurement º Performance measurement metrics - what can be measured? º Windows performance counters º CPU profilers - sampling and instrumentation º Memory allocation profiling º Memory leak profiling º Concurrency profiling º Event Tracing for Windows º Windows Performance Toolkit and PerfView º Micro-benchmarking º LAB: Measuring CPU time and wall-clock time º LAB: Profiling memory allocations º LAB: Diagnosing a memory leak º LAB: Profiling CPU cache misses Module 3 - Type Internals º Differences between value types and reference types º Reference type memory layout - type object pointer, sync block index º Invoking virtual vs. non-virtual methods, the sealed modifier º Value type memory layout, boxing º Implementing value types correctly - Equals and GetHashCode Module 4 - Garbage Collection º Reference counting vs. tracing GC º The managed heap and the next object pointer (NOP)

º Mark and sweep GC model, GC roots º GC flavors - workstation GC, server GC º Thread suspension for GC º Pinning objects referenced by unmanaged code º Generations and inter-generation references º GC segments and virtual memory º Managed GC APIs º Finalization internals and deterministic finalization º Weak references º Best practices for interacting with the GC Module 5 - Generics º Motivation and generic constraints º Implementation of generics at runtime º.NET generics compared to Java generics and C++ templates Module 6 - Unsafe Code º The Marshal class, accessing unmanaged memory º Copying data from unmanaged structures º C# pointers, the unsafe keyword, pinned pointers º LAB: Implementing memory copy with unsafe code º LAB: Improving upon code-generation approaches Module 7 - Collections º.NET Collections º Choosing a Collection º Cache Considerations º Custom Collections Module 8 - JIT Optimizations º Multi-Core Background JIT º NGen º MPGO º RyuJIT º ILMerge º.NET Native º Method Inlining º Range Check Elimination º Microsoft.Bcl.Simd

.NET Debugging Module 01 - Exceptions and Dumps º Exception Handling º Debugging Symbols º Dump Files and Types º Generating Dumps º Automatic Dump Generation º Opening Dump Files Module 02 - Introduction to WinDbg º Basic WinDbg Commands º Smart Breakpoints º WinDbg Scripts º WinDbg Extensions º LAB: Getting Acquainted with WinDbg º LAB: Capturing Crash Dumps (x3) Module 03 - C++ Debugging Scenarios º Heap Corruptions º Stack Corruptions º Memory Leaks º Resource Leaks º Deadlocks º LAB: Memory Leak º LAB: Heap Corruption º LAB: Stack Corruption º LAB: Handle Leak º LAB: Invalid Handles º LAB: Deadlock (x2) Module 04 - Debugging Tools º Performance Counters º Process Explorer º Process Monitor º Application Compatibility Toolkit º ETW and Xperf º GFlags º LAB: Profiling with Xperf

º LAB: Process Monitor º LAB: Application Compatibility Toolkit Module 05 - Debugging in Visual Studio º Visual Studio Windows º Breakpoints and Tracepoints º Data Breakpoints, Function Breakpoints º Threads º Parallel Stacks, Parallel Tasks º Static Code Analysis º LAB: Runtime Checks Module 06 - SOS º Setting Smart Breakpoints º Analyzing Memory Leaks º Inspecting Objects º Inspecting Threads and Stacks º Advanced Commands º LAB: Getting Acquainted with SOS º LAB: Capturing Crash Dumps (x2) º LAB: Deadlock (x2) º LAB: Memory Leak (x4) Module 07 -.NET Debugging Tools º Managed Debugging Assistants º IntelliTrace º Visual Studio Profiler º CLR Profiler º ANTS Memory Profiler º Assembly Loading Diagnostics º LAB: Fusion Diagnostics º LAB: IntelliTrace