简介
本培训深入探讨.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注入风险,分析常见问题,优化实践 |
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员
Jack Zhang
百林哲咨询(北京)有限公司专家团队成员