当前位置: 必赢官网 > web前端 > 正文

调试.NET程序OutOfMemoryException (转载)

时间:2019-12-28 01:33来源:web前端
推荐25个帮助你的.NET应用性能调优的资源,如果你还知道其他的资源请在下面留言。1.Improving.NET Application Performance and Scalability (2004) 来自msdn.microsoft.com 作者 J.D. Meier, Srinath Vasireddy, Ash

推荐25个帮助你的.NET应用性能调优的资源,如果你还知道其他的资源请在下面留言。1.Improving .NET Application Performance and Scalability (2004) 来自 msdn.microsoft.com 作者 J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman (Microsoft Corporation) (下载PDF文件)调优包括:managed codeASP.NETEnterprise ServicesWeb servicesremotingADO.NETXMLSQL Server你会感兴趣的内容:Chapter 5, Improving Managed Code PerformanceChapter 6 - Improving ASP.NET PerformanceChecklist: ASP.NET PerformanceChapter 15 - Measuring .NET Application PerformanceChapter 16

Web

原文地址:

  • Testing .NET Application PerformanceChapter 17 - Tuning .NET Application Performance2.ASP.NET Performance Monitoring, and When to Alert Administrators (2003) by Thomas Marquardt at msdn.microsoft.com3.10 Tips for Writing High-Performance Web Applications (2005) by Rob Howard at msdn.microsoft.com4.ASP.NET Performance Engineering - Stress Test Your Architecture, Design, And Code (2008) by Alik Levin at blogs.msdn.com5.Patterns Practices Performance Wiki at channel9.msdn.com6.Performance Wiki How Tos7.10 ASP.NET Performance and Scalability Secrets 8.ASP.NET Performance Tips9.20 Tips to Improve ASP.net Application Performance (2007) by Miguel Carrasco, at realsoftwaredevelopment.com10.High-Performance .NET Application Development Architecture - Introduction (2006) by Dimitrios Markatos at developerfusion.com全文阅读:
  • 网页栅格系统研究(1):960的秘密 - (2):蛋糕的切法 - (3):粒度问题
  • 12 Steps To Faster Web Pages With Visual Round Trip Analyzer

 

.NET

应用程序调试,需要有个常规的调试思路,应对各类问题最基本的调试手段是什么,不能一头雾水的上手而乱了阵脚,而且根据经验统计这些基本的步骤可以解决大多数的问题。

  • Comparing Hash Table Implementations Performances
  • MSDN Magazine November 2008
  • A simple QuadTree implementation in C#

 

Debug

问题分类

 

第一种,应用程序不工作了。

第二种,应用程序反应很慢。

对于这样简单的描述我们一般需要进一步了解更多信息,比如

问题最直接的表现是什么? 

  • 浏览器显示网页报错信息 

  • Web Service调用报错信息

是否可以重现?如何重现?

围绕这个我们还可以问重现的频率如何,这是第一次发生么,在这之前是否有什么值得怀疑的改动?很多时候问题发生了并没有足够多的信息被记录下来。如果这个 问题能够重复发生,我们就可以接下来拟定相应的数据收集和调试计划。如果能够知道如何重现,那么很多时候可以现场调试和抓取数据,可以搭建测试环境,甚至 有的时候原因存在的层次可以通过如何重现问题推测出来,能够更加有效的解决问题。

发生问题的系统环境是什么?  

  • IIS 6 

  • IIS 7 

  • IIS 7.5 

  • IIS 8

了解问题发生的具体环境,不同的环境上面可以使用的工具不尽相同,不同的调试策略对应不同的环境。比如Failed request tracing在IIS6上面就没办法使用,而只能选用ETW。负载均衡环境中如果只有单台服务器发生问题也可以对比下环境配置,很多时候区别之处隐含着问题发生的原因。

 

如何缩小问题范围,确定问题发生层级

  • 是否是客户端问题 

  • 是否是网络原因 

  • 是否是服务器底层服务问题

    • Tcp/ip

    • Http/Https

  • 是否是IIS问题 

  • 是否是应用程序本身问题 

  • 是否是应用程序所依赖的后台服务问题

 

  • My stored procedure "best practices" checklist

调试工具

 

PDC

日志 

  1. Http error log-主要用来查看http级别上面记录的出错日志 
  2. IIS log-主要用来查看IIS上面发生的请求相关信息 
  3. Event log-查看程序异常信息以及系统日志

 

  • C# 4.0 New Features Part 1.1 - dynamic keyword second look
  • .NET Framework 4.0 Poster - DeepZoom version - PDF
  • PDC 2008 Experience: Day 3: Session = "Improving Code Quality with Code Analysis"
  • Performance by Design Intro
  • Performance by Design CPU
  • Performance by Design Memory
  • Performance by Design Parallel
  • Performance by Design ASP.NET

客户端工具 

  1. IE-客户端调试 
  2. Fiddler-追踪客户端http请求-Free 
  3. Httpwatch-追踪客户端http请求-Licensed 
  4. Wfetch-取代IE测试发送单独的http请求,可以自定义要发送的http头。 
  5. Network Monitor-追踪本机全部网络通讯 
  6. Wireshark-追踪本机全部网络通讯

 

*PDC2008 Quick Video Link List

服务端工具 

  1. Etw-系统级事件追踪,可以订阅不同的windows组件内建日志 
  2. Freb-IIS7及以上引入,基于Etw,追踪服务器端整个http请求的生命周期 
  3. Adplus-可以定义规则,抓hang/crash/breakpoint      dump 
  4. DebugDiag-可以定义规则,抓各种dump,集成dump分析功能 
  5. ProcDump-主要抓程序high cpu dump 
  6. Performance Counter-系统性能计数器 
  7. Process Monitor-可以记录程序访问文件/注册表/网络请求信息及相关调用栈信息 
  8. Poolmon-监测系统paged/non-paged pool内存泄露 
  9. SQL Profiler-追踪SQL语句执行过程 
  10. SSLDiag-检测服务器端SSL配置 
  11. DelegConfig-检测服务器Kerberos配置 
  12. Certutil-检测证书各种属性 
  13. Fushion Log-记录clr加载dll日志 
  14. CLR Profiler-追踪托管堆内存对象

 

  • BB54 Designing Your Application to Scale WMV-HQ PPTX
  • PC30 ASP.NET Dynamic Data WMV-HQ PPTX
  • PC31 ASP.NET and JQuery WMV-HQ PPTX
  • PC32 ASP.NET AJAX Futures WMV-HQ PPTX
  • PC41 ASP.NET: Cache Extensibility WMV-HQ PPTX
  • PC49 Microsoft .NET Framework: CLR Futures WMV-HQ PPTX
  • PC53 Building High Performance JScript Applications WMV-HQ PPTX
  • PC54 Mono and .NET WMV-HQ PPTX
  • TL14 Project "Velocity": A First Look WMV-HQ PPTX
  • TL56 Project "Velocity": Under the Hood WMV-HQ PPTX
  • TL15 Architecture without Big Design Up Front WMV-HQ PPTX
  • TL16 The Future of C# WMV-HQ PPTX
  • TL24 Improving .NET Application Performance and Scalability WMV-HQ PPTX
  • TL59 Visual Studio Debugger Tips & Tricks WMV-HQ PPTX

离线调试工具 

  1. Windbg-分析dump,动态调试  
    1. Psscor-比SOS更强大的托管程序调试扩展  
    2. SOS- .NETFramework自带的托管代码调试扩展  
    3. IISinfo-IIS调试扩展 
  2. Log Parser-解析Event Log, IIS log, HTTPlog等各种日志 
  3. Excel-Excel 
  4. ILSpy-根据Assembly查看托管代码 - Free 

  5. Reflector-根据Assembly查看托管代码 - Licensed

 

参考文档

Http API ErrorLogging

HTTP Status Code inIIS 7 & 7.5

Wikipedia internetprotocol suite

Http protocol

 

FTP protocol

SSL v3.0

TLS v1.0

 

W3C Tutorial - HtmlXml CSS

 

Windows development

http://msdn.microsoft.com/en-us/library/ee663300(v=vs.85) 

Classic ASP

 

IIS.NET

 

ASP.NET

ASP.NET FAQs

Improving Web Application Security: Threats and Countermeasures

Security How Tos Index

Troubleshooting Performance Problems in SQL Server 2005

Performance Testing Guidance

Exceptional Performance

Improving .NET Application Performance and Scalability

Performance Testing Guidance for Web Applications

Fiddler PowerToy - Part 1: HTTP Debugging
http://msdn.microsoft.com/en-us/library/bb250446(v=vs.85).aspx
Fiddler PowerToy - Part 2: HTTP Performance

编辑:web前端 本文来源:调试.NET程序OutOfMemoryException (转载)

关键词: 必赢官网