工程师
制造
工程师
.Net
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

.Net应用高级调试与调优

YK.Z

Intel 前英特尔软件架构师,系统调试专家

微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师。 《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者 。
1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件案例研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》等。
讲师认为软件瑕疵是个永恒的难题,因此在这方面投入了很多时间,探索出了一套以调试器为核心的方法。与瑕疵和调试相关的另一个永恒难题就是软件的安全性。安全漏洞,可以说是一种特别的瑕疵。发现和研究安全漏洞离不开调试方法。因此花费大量时间研究软件安全和渗透测试。
翻译(合译)作品有《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。

微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师。 《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者 。 1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。 从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件案例研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》等。 讲师认为软件瑕疵是个永恒的难题,因此在这方面投入了很多时间,探索出了一套以调试器为核心的方法。与瑕疵和调试相关的另一个永恒难题就是软件的安全性。安全漏洞,可以说是一种特别的瑕疵。发现和研究安全漏洞离不开调试方法。因此花费大量时间研究软件安全和渗透测试。 翻译(合译)作品有《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。

课程费用

6800.00 /人

课程时长

3

成为教练

课程简介

本培训专门针对已经有较多.Net应用程序开发经验的工程师而设计,深入探讨.Net应用程序的复杂问题,包括托管堆、多线程、异常处理、异步通信和性能优化等。
培训中结合大量的实例介绍使用WinDBG、Visual Studio、WPT等调试调优工具解决各种复杂问题的方法和技巧。

目标收益

培训对象

课程大纲

第一部分:Windows系统核心机制 (1.5小时) 要点:
NT架构,进程空间,特殊的FS/GS段,缺页异常,
在任务管理器中观察重要系统信息:CPU总时间、提交内存、工作集等,系统调用,NT的关键进程(CSRSS、LSASS、WinLogon),NT的重要数据结构:EPROCESS、PEB、TEB,Windows子系统,在WinDBG中观察核心数据结构。
第二部分:在调试器中理解托管世界 (1.5小时) 要点:
MSCOREE,加载运行时,GC线程,调试辅助线程,Domain,CLR.dll/MSCORWKS.dll,MSJIT,类加载,及时编译,执行Main方法,SOS简介,加载方法,主要命令,类的方法表,方法描述,托管堆,深入理解Property和Field,使用SoS命令观察和分析托管堆,调用本地代码(显式和隐式PInvoke,动态PInvoke),在调试器中理解marshaling,PInvoke的常见问题,实例演示。
第三部分:WinDBG精要(1.5小时) 要点:
WinDBG的命令类型,基本使用方法,表达式,重要的调试命令(访问内存、寄存器、断点设置和管理、硬件断点,条件断点),调试符号,定制调试事件的方法,远程调试,高级使用技巧。
第四部分:异常处理 (1.5小时) 要点:
异常概要,异常的来源,异常的分发过程,SEH和VEH,异常处理,两轮异常分发,未处理异常,WER,转储文件,托管异常的发起和分发,Throw,sos的有关命令,Windows SDK安装程序挂死案例解析。
第五部分:堆和堆的调试支持(1.5小时) 要点:
多层存储架构,内存管理器,内核态池,用户态堆,堆布局,内存有关的典型问题,使用CRT堆和Win32堆的调试支持分析内存泄漏,UMDH,通过页堆发现堆块溢出,堆的多实例,案例分析。
第六部分:深入理解栈 (1.5 小时)
要点:
栈基础,自动增长机制,栈帧的组织方法,栈溢出,/GS,观察栈上的信息,k命令,切换栈帧,托管程序的栈,案例演示。
第七部分:多线程(1.5小时) 要点:
并发与并行,多核与超线程, Windows线程,TEB,线程池,同步,关键区,死锁,!locks, !cs -l,Interlocked操作原理,案例分析。
第八部分:Visual Studio的高级功能 (1.5小时) 要点:
Immediate窗口,数据断点、监视点、命令窗口,设置符号,跟踪WPF运行时的源代码,开启WPF的追踪机制,VS的调优功能。
第九部分:优化基础(1.5小时) 要点:
性能目标,基本优化方法,采样,instrumentation,空间优化,时间优化,测量方法,测量指标(metrics),测量的噪声,常用的时间测量方法,最佳实践,衡量性能提升的方法,案例解说。
第十部分:ETW和WPT (1.5小时) 要点:
ETW原理,WPT工具集概要,关键模块,使用WPR收集事件,典型用法:资源分析和场景模板,启动WPA,WPA的多种视图,在WPA中加载符号,使用WPT分析典型的优化问题。
第十一部分:VTune基础(1.5小时) 要点:
背景,版本历史,工作原理(CPU的性能监视机制),主要功能,三类目标:启动应用、附加到应用和全系统勘察,选择分析类型:算法分析(Hotspot分析、并发分析)、平台分析、微架构分析,指标解释,符号文件和符号文件设置,实际案例演示。
第十二部分:图形优化(1.5小时)
要点:
Windows图形子系统概要,WDDM、DirectX,HLSL,DX运行时,DX API,DX在WPF和Metro应用中的使用,图形调优工具:Intel GPA Analyzer、WPF Performance Suite和GPUView,使用Perforator分析WPF应用的渲染过程、帧率和显存使用,使用Visual Profiler观察分解后的WPF UI元素开销,案例分析。
第一部分:Windows系统核心机制 (1.5小时)
要点:
NT架构,进程空间,特殊的FS/GS段,缺页异常,
在任务管理器中观察重要系统信息:CPU总时间、提交内存、工作集等,系统调用,NT的关键进程(CSRSS、LSASS、WinLogon),NT的重要数据结构:EPROCESS、PEB、TEB,Windows子系统,在WinDBG中观察核心数据结构。
第二部分:在调试器中理解托管世界 (1.5小时)
要点:
MSCOREE,加载运行时,GC线程,调试辅助线程,Domain,CLR.dll/MSCORWKS.dll,MSJIT,类加载,及时编译,执行Main方法,SOS简介,加载方法,主要命令,类的方法表,方法描述,托管堆,深入理解Property和Field,使用SoS命令观察和分析托管堆,调用本地代码(显式和隐式PInvoke,动态PInvoke),在调试器中理解marshaling,PInvoke的常见问题,实例演示。
第三部分:WinDBG精要(1.5小时)
要点:
WinDBG的命令类型,基本使用方法,表达式,重要的调试命令(访问内存、寄存器、断点设置和管理、硬件断点,条件断点),调试符号,定制调试事件的方法,远程调试,高级使用技巧。
第四部分:异常处理 (1.5小时)
要点:
异常概要,异常的来源,异常的分发过程,SEH和VEH,异常处理,两轮异常分发,未处理异常,WER,转储文件,托管异常的发起和分发,Throw,sos的有关命令,Windows SDK安装程序挂死案例解析。
第五部分:堆和堆的调试支持(1.5小时)
要点:
多层存储架构,内存管理器,内核态池,用户态堆,堆布局,内存有关的典型问题,使用CRT堆和Win32堆的调试支持分析内存泄漏,UMDH,通过页堆发现堆块溢出,堆的多实例,案例分析。
第六部分:深入理解栈 (1.5 小时)

要点:
栈基础,自动增长机制,栈帧的组织方法,栈溢出,/GS,观察栈上的信息,k命令,切换栈帧,托管程序的栈,案例演示。
第七部分:多线程(1.5小时)
要点:
并发与并行,多核与超线程, Windows线程,TEB,线程池,同步,关键区,死锁,!locks, !cs -l,Interlocked操作原理,案例分析。
第八部分:Visual Studio的高级功能 (1.5小时)
要点:
Immediate窗口,数据断点、监视点、命令窗口,设置符号,跟踪WPF运行时的源代码,开启WPF的追踪机制,VS的调优功能。
第九部分:优化基础(1.5小时)
要点:
性能目标,基本优化方法,采样,instrumentation,空间优化,时间优化,测量方法,测量指标(metrics),测量的噪声,常用的时间测量方法,最佳实践,衡量性能提升的方法,案例解说。
第十部分:ETW和WPT (1.5小时)
要点:
ETW原理,WPT工具集概要,关键模块,使用WPR收集事件,典型用法:资源分析和场景模板,启动WPA,WPA的多种视图,在WPA中加载符号,使用WPT分析典型的优化问题。
第十一部分:VTune基础(1.5小时)
要点:
背景,版本历史,工作原理(CPU的性能监视机制),主要功能,三类目标:启动应用、附加到应用和全系统勘察,选择分析类型:算法分析(Hotspot分析、并发分析)、平台分析、微架构分析,指标解释,符号文件和符号文件设置,实际案例演示。
第十二部分:图形优化(1.5小时)

要点:
Windows图形子系统概要,WDDM、DirectX,HLSL,DX运行时,DX API,DX在WPF和Metro应用中的使用,图形调优工具:Intel GPA Analyzer、WPF Performance Suite和GPUView,使用Perforator分析WPF应用的渲染过程、帧率和显存使用,使用Visual Profiler观察分解后的WPF UI元素开销,案例分析。

课程费用

6800.00 /人

课程时长

3

预约体验票 我要分享

近期公开课推荐

近期公开课推荐

提交需求