.Net应用高级调试与调优
Jack Zhang 查看讲师
百林哲咨询(北京)有限公司专家团队成员
业内资深工程师、内核调试专家,调试网站(ADVDBG.ORG)创始人。从事软件开发和研究工作,对IA-32 架构、操作系统内核、驱动程序、尤其是软件调试有较深入研究。
浏览:4684次
详情 DETAILS

简介

本培训深入探讨.Net应用程序的复杂问题,包括托管堆、多线程、异常处理、异步通信、和性能优化等。培训中结合大量的实例介绍使用WinDBG、Visual Studio、WPT等调试调优工具解决各种复杂问题的方法和技巧。整个培训理论讲解和实验演示紧密结合。培训形式: 演讲 + 演示及动手实验

受众人群

已经有较多.Net应用程序开发经验的工程师

课程时长

3天(18H)

分享提纲

第一部分:托管进程的创建过程 (1.5小时)

要点:

Windows进程基础,MSCOREE,加载运行时,GC线程,调试辅助线程,Domain,CLR.dll/MSCORWKS.dll,MSJIT,类加载,及时编译,执行Main方法

第二部分:在调试器中理解托管世界 (1.5小时)

要点: 

SOS简介,加载方法,主要命令,类的方法表,方法描述,托管堆,深入理解Property和Field

第三部分:WinDBG精要(1.5小时)

要点:

WinDBG概览,命令类型,基本使用方法,观察和编辑内存,设置符号,控制程序执行,定制调试事件的方法,包括用户态调试的常用命令和用法演示

试验一:使用WinDBG + SOS调试.Net程序 (1小时)

第四部分:异常处理(1.5小时)

要点:

异常的分发过程,异常处理,未处理异常,WER,转储文件,真实案例演示:Windows SDK安装程序挂死案例解析

第五部分:多线程(1.5小时)

要点:

并发与并行,多核与超线程, Windows线程,System.Threading,托管线程的创建,TEB,线程池,线程优先级,同步,lock语句,Monitor类,Mutex类,SpinLock类,ReaderWriterLock类,Semaphore类,WaitAny,WaitHandle,死锁,Interlocked 函数和指令,在调试器下观察托管线程和本地线程

第六部分:Visual Studio的高级调试功能 (1.5小时)

要点:

VS概览,VS版本,Immediate窗口,数据断点、监视点、命令窗口,设置符号,模块窗口,线程窗口,寄存器,EnC,debugging at design time,VsHost进程,WPF可视化,WPF跟踪器,跟踪.Net运行时源代码

试验二:跟踪WPF运行时的源代码 (45分钟)

试验三:转储分析之寻找SDK安装程序挂死原因(45分钟)

第七部分:崩溃与转储 (1.5小时)

要点:

应用程序崩溃,WER,转储文件,ADPlus(崩溃模式,挂死模式),案例分析:WD移动硬盘软件实例分析

第八部分:调优基础 (1.5小时)

要点:

目标, Metrics,Amdahl定律,调优工具分类:Time Profilers、Visual Studio Allocation Profiler、Memory Profiler,常见工具:Vtune、Visual Studio Sampling Profiler,Microbenchmark

第九部分: ETW和WPT (1.5小时)

要点:

调优基础,两种基本方法(采样和插桩),ETW原理,WPT工具集详细介绍(WPR, WPA),YourKit简介,案例分析

第十部分:GPU和图形编程 (1.5小时)

要点:

图形硬件的三轮发展,GPU的四大模块,驱动模型,WDDM,驱动基础DirectX,HLSL,DX运行时,DX API,DXVA,C++ AMP, DX在WPF和Metro应用中,图形程序优化,Intel GPA Analyzer, WPF Performance Suite, GPUView

试验四:使用WPF Performance Suite优化.Net程序的图形性能(0.5小时)

第十一部分:网络编程(1.5小时)

要点:

网络编程接口,Socket简史,System.Net.Sockets,Socket类,编写客户端代码(TcpClient),服务端(TcpListener),代码示例和分析,Socket异步编程,Socket错误,优化 

第十二部分:数据库编程 (1.5小时)

要点:

ODBC,ADO.NET,连接串,MS SQL和MySQL,System.Data.SQL,System.Data.ADO,SQLConnection, SQLCommand, SQLDataSetCommand, SQLDataReader,代码示例和解析,SQL注入风险,分析常见问题,优化实践

企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1