Hi
I am involved in developing a clr profiler project. We are currently using IID_ICorProfilerInfo2 (m_pProfilerInfo) interface object. We are using the following event masks
hr = m_pProfilerInfo->SetEventMask(COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
COR_PRF_MONITOR_EXCEPTIONS |
COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_MONITOR_JIT_COMPILATION |
COR_PRF_MONITOR_MODULE_LOADS );
When we remove the event mask "COR_PRF_USE_PROFILE_IMAGES", we are not able to get SQL, HTTP calls for JIT compilation.
We have observed the same behavior by setting the event mask "COR_PRF_DISABLE_ALL_NGEN_IMAGES".
When we set either "COR_PRF_USE_PROFILE_IMAGES" or "COR_PRF_DISABLE_ALL_NGEN_IMAGES", the worker process
cpu utilization goes higher and some time it reaches 100% too. When we see the thread stack in w3wp process
using the process explorer, we are seeing many clr::prebindassemblyex(). Each and every prebindassemblyex()
takes < 10% cpu utilization. This seems something related with ngen or profiled enhanced images.
Is it possible to avoid the cpu% and still use COR_PRF_USE_PROFILE_IMAGES event mask?