.NET可执行流程通过

时间:2010-12-13 21:04:09

标签: .net

是否有详细的演练,描述了在运行可执行文件时.NET级别发生的所有进程?就像访问的文件夹,可能正在运行的进程,它们正在运行的对象等等在应用程序之外发生的事情?

1 个答案:

答案 0 :(得分:3)

[我不是100%清楚你的流程是什么意思。如果您指的是CLR内部的程序,则以下答案适用。如果您的意思是CLR之外的操作系统进程,请不要介意!]

我不知道是否有详细的演练。无论如何,它很复杂。启动时,CLR会读取大量注册表项,machine.config,app.config等,解析要加载的DLL版本(a.k.a. .NET Fusion)等。

获得详细信息的最佳方法是在ETW(Windows事件跟踪)下运行.NET应用程序。您可以打开OS事件日志记录以观察所有操作系统交互(reg条目读取,文件读取,DLL加载等),还可以启用CLR级别事件的日志记录。然后(后期处理)您可以整理(按时间排序)所有这些信息,以获得完整详细的时间表。我曾经使用这种工具来测量和调整CLR app启动时间。

有关CLR ETW事件的信息,另请参阅http://msdn.microsoft.com/en-us/library/ff357719.aspx

快乐的黑客攻击!