Tag: 分析

将Trace.axd中的数据记录到text / xml文件中

在尝试追踪仅在我们的生产环境中发生的性能问题时,我们在应用程序中启用了跟踪,因此请查看方法调用和页面加载时间。 这很有效,有很多信息可以帮助追踪问题。 但是,查看此信息的唯一方法是浏览到Trace.axd,然后单独查看每个请求。 它也只能以这种方式跟踪前X个请求,X的最大限制为10,000。 有没有办法将此跟踪信息定向到文件或数据库? 我相信这可以使用System.Diagnostics来完成,但是,我没有太多运气。 我已启用跟踪使用 我尝试过使用XmlWriterTraceListener 这会生成一个xml文件,其中包含跟踪项的时间戳和数据,例如“Begin Load”,“End Load”等。 但是,它似乎只记录单个请求,并且不记录所有请求。 此外,虽然加载时间很有用,但理想情况下我希望能够获得Trace.axd中可以看到的所有信息,例如请求数据,发布数据,会话数据等。 这是否可能没有任何重大代码更改? 理想情况下,我想仅使用web.config更改来启用此function。 或者,我已经研究过其他应用程序,例如RedGate和Equatec的分析工具,但是,我想首先用尽非侵入式跟踪选项。 该应用程序是用ASP.Net 3.5和C#编写的。

如何抑制生成代码的代码分析?

我有一个Silverlight项目,其中包含生成的Reference.cs文件,其中包含服务引用。该类归属于[GeneratedCode],在项目配置中,生成的代码的代码分析被禁用(发布和调试)。 我做错了什么?

我可以用什么资源来学习分析/优化?

我刚刚inheritance了一个C#项目,该项目运行缓慢,必须开始优化它。 我首先要做的是学习更多关于分析/优化的知识,因为我以前没有这么做。 所以问题是我从哪里开始,我可以阅读哪些书籍/博客/关键词? 我知道像ANTS分析器这样的.net分析器等等,但我不知道如何有效地使用它们。 我还没有真正使用它,只是让它运行在几个示例应用程序上来播放输出。

Process.GetProcessesByName(String,String)内存泄漏

我有一段代码,使用静态方法Process.GetProcessesByName(String,String)获取远程计算机上的进程列表,这可以在很多计算机上运行(几千个),我注意到它的原因是主要的内存泄漏。 我运行了ANTS内存分析器,它告诉我,我的大部分内存都是字符串,字符串包含诸如“%Idle Time”,“Processor Information”和“Cache Faults / sec”之类的存储值。 我已经认识到这些字符串可能是程序中性能计数器的一部分,问题是我在程序中没有任何性能计数器。 深入挖掘发现这些字符串保存在由PerformanceCounterLib保存的哈希表中,这些哈希表由另一个哈希表保存,该哈希表存储在PerformanceCounterLib类的内部静态成员(本身就是内部)中。 深入挖掘兔子洞,我发现Process.GetProcesesByName使用PerformanceCounterLib来获取在远程计算机上运行的进程列表,并且对于每个远程计算机,在PerformanceCounterLib的静态内部变量中创建并引用另一个PerformanceCounterLib实例。 这些实例中的每一个都认为我发现的字符串哈希表会堵塞我的记忆(每个字符串都在300-700 kb之间,这意味着它会堵塞我的大对象堆)。 我没有找到删除那些未使用的PerformanceCounterLib实例的方法,它们都是内部的,用户无法访问它们。 我该如何解决我的记忆问题? 这真的很糟糕,我的程序在24小时内达到5GB(我的服务器限制)。 编辑 :添加了一段应该重现问题的代码(未经测试)。 为了澄清: /// computerNames is a list of computers that you have access to public List GetProcessesOnAllComputers(List computerNames) { var result = new List(); foreach(string compName in computernames) { Process[] processes = Process.GetProcesses(compName); // Happens with every method that […]

C#频率分析仪

我正在寻找一个C#源代码,对WAV文件执行频率分析,并在图表中显示结果,类似于WavePad等应用程序中显示的结果。 你知道我在哪里可以找到这样的代码吗? 谢谢!

C#WPF中的内存泄漏

我可以使用一些建议来跟踪C#中内存泄漏的原因。 我理解什么是内存泄漏,我知道它们出现在C#中的原因,但我想知道你过去用什么工具/策略来解决它们? 我正在使用.NET Memory Profiler,我发现我关闭它管理的窗口后,我的一个巨大的主要对象是留在内存中,但我不知道如何处理严重的所有链接。 如果我不够清楚只是发一个问题的答案,我会编辑我的问题作为回应。 谢谢!

function分析困境 – Visual Studio 2010 Ultimate

我试图在重构之前和之后分析我的应用程序来监视函数的效果。 我已经对我的应用程序进行了分析并查看了摘要我注意到Hot Path列表没有提到我使用的任何函数,它只提到Application.Run()的函数 我很擅长分析,并想知道如何通过MSDN文档certificate我可以获得有关Hot Path的更多信息; MSDN示例: 我的结果: 我注意到在输出窗口中有许多与加载符号时失败相关的消息,其中一些在下面; Failed to load symbols for C:\Windows\system32\USP10.dll. Failed to load symbols for C:\Windows\system32\CRYPTSP.dll. Failed to load symbols for (Omitted)\WindowsFormsApplication1\bin\Debug\System.Data.SQLite.dll. Failed to load symbols for C:\Windows\system32\GDI32.dll. Failed to load symbols for C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll. Failed to load symbols for C:\Windows\system32\msvcrt.dll. Failed to load symbols for C:\Windows\Microsoft.NET\Framework\v4.0.30319\nlssorting.dll. Failed to load symbols for […]