问题标签 [clrprofiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

.net - 解析 COR_PRF_FUNCTION_ARGUMENT_INFO 结构

我想知道我应该如何解析提供给SetEnterLeaveFunctionHooks3WithInfo函数的回调方法的COR_PRF_FUNCTION_ARGUMENT_INFO结构。

据我了解,该结构包含一组内存地址,其中包含函数参数值的位置。可以在此处找到有关此结构的信息:https ://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/cor-prf-function-argument-info-structure

我还解析了函数的元数据以确定提供给函数的参数数量和每个参数的类型。我使用了IMetaDataImport接口的GetMethodProps函数。

我不知道下一步该做什么,我将如何继续使用COR_PRF_FUNCTION_ARGUMENT_INFO结构获取每个参数的实际值?我是否需要确定每个参数的大小来计算每个参数的内存地址的偏移量?谢谢你的帮助

0 投票
1 回答
50 浏览

async-await - .NET 分析 api - 计算执行异步方法所需的时间

为了监控我的 dotnet 核心应用程序,我使用 .NET clr profiling api 来获取方法级别的跟踪并计算任何方法完成其执行所花费的时间。我无法获得异步方法所花费的时间。

在上面的代码中,我从 PostDataAsyncWithHeader() 方法发出 api 请求,这几乎需要 5 秒才能完成。但是当我使用 clr 分析 Enter 和 exit 挂钩来计算时间时,Get() 方法显示大约 5 秒,但 RunQueryAsync() 和 PostDataAsyncWithHeader() 方法显示 0ms。但实际时间由 PostDataAsyncWithHeader() 方法占用。

我想找到 PostDataAsyncWithHeader() 方法所花费的确切时间。请建议我如何实现它。

0 投票
0 回答
33 浏览

async-await - .NET profiling api获取当前线程的父线程ID

我正在使用 dotnet 分析 api 来监视多线程程序中的方法。我看到我的一种方法是花费更多时间。当我检查时,我看到该方法的线程 ID 与调用它的父方法不同。如何找到该线程的父线程 ID,以便获取堆栈跟踪。