Is is possible to use Profiling API right from C#?

泄露秘密 提交于 2019-11-27 12:17:43

问题


I just want to use .NET Profiling API (ICorProfilerCallback etc) but at the same time don't want to deal with C++. I've been looking around for a while and haven't found any example in C# but C# + C++ where the most interesting part is written using C++.


回答1:


No, you cannot implement the CLR profiling APIs in managed code (C# or otherwise) since the profiling callbacks are called at very specific times when the managed environment is assumed to be in a certain state. Implementing your callbacks in managed code would violate a lot of assumptions.

David Broman, the developer of the CLR profiling APIs, has this to say:

You need to write your profiler in C++. The profiler is called by the runtime at very delicate points during execution of the profiled application, and it is often extremely unsafe to be running managed code at those points.

David's blog is a great resource for dealing with the CLR profiling APIs.



来源:https://stackoverflow.com/questions/5736845/is-is-possible-to-use-profiling-api-right-from-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!