.Net Profiling API 方法
Posted
技术标签:
【中文标题】.Net Profiling API 方法【英文标题】:.Net Profiling API approaches 【发布时间】:2009-03-06 01:50:25 【问题描述】:我感觉我可能已经知道这个问题的答案了,但我还是会问的。
有没有比 COM/Managed C++ 路由更好的方法来使用 .Net Profiling API?
我不愿意遵循建议的 COM 方法是这样的:
努力,开始需要大量的跑腿 不喜欢连接 C++ dll 所涉及的魔法,不容易通过项目重新分发 感觉很难进行单元测试 不想在 C++ 中表现。我可以创建一个互操作层,但工作量更大 很难调试。根据我收集到的信息,您无法将调试器附加到实际的 C++ 层,因此您需要返回日志文件等我遇到了一个名为NProf 的项目,它试图用托管层封装 API。不幸的是,它自 2003 年以来就没有更新过。
有没有人可以提供帮助?这一切只是感觉有点恶心。
说明:
这描述了我所指的 API:The Profiling API 我正在使用 Visual Studio 2008 和 v3.5 框架【问题讨论】:
不知道您使用的是哪个 VS 版本,但请看这里:msdn.microsoft.com/en-us/library/…。其中一些内容也可用于 2005 版。 您使用的是网络框架版本? 2,3,3.5 ? 更新中的澄清版本。 您可以将调试器附加到实际的 C++ 层。为此,请添加代码“__asm int 3;”你想第一次打破的地方。编译并运行您的分析器。当它到达那条线时,会弹出一个弹出窗口,说程序已经崩溃。单击“调试”,然后附加所需的任何调试器。就是这样。 【参考方案1】:您可以查看 Part-Cover。它是一个代码覆盖工具 (GPL),但它的工作方式与 NCover 类似,这意味着它使用分析 API 来完成它的工作。不确定代码的好坏,以及它对您有多大帮助(GPL 也可能是一个问题),但您可能想看看它。它在去年年底更新,然后就沉寂了,所以我不确定这个项目是否仍然活跃。
【讨论】:
谢谢,我会检查许可证,看看它允许我做什么。【参考方案2】:分析是一个非常低级和性能敏感的领域,因此它被公开为一个低级 API。我认为这只是这种功能的领域。
您能否详细说明调试问题...您应该能够将非托管调试器附加到您正在分析的托管可执行文件并使用它来调试您的分析器 dll。
【讨论】:
调试问题只是传闻。我还没有开始任何工作,我只是在旅行中读到很难调试事情的非托管方面。如果不是,那就太好了。 查看我上面的评论,了解如何调试进程内 C++ 分析器代码。以上是关于.Net Profiling API 方法的主要内容,如果未能解决你的问题,请参考以下文章
Pandas系列(十七)-EDA(pandas-profiling)
使用 Profiling Tools 的 Function Callgraph 选项时出现 Eclipse CDT 错误