当我检查 visual studio 调试器的 cpu 使用情况时,看到的外部和本机函数是什么?

what are the external and native functions seen when i check cpu usage by visual studio debugger?

这是录制的 CPU 配置文件的屏幕截图

我正在使用 visual studio 调试器检查我的 C# 程序的 CPU 用法。 但是我无法理解什么是外部函数、本机函数,以及 total CPU% 和 self CPU% 之间有什么区别。 我只想分析我程序的 CPU 性能

外部函数表示由您的代码执行的系统和框架函数。外部代码函数启动和停止应用程序、绘制 UI、控制线程以及为应用程序提供其他低级服务。

原生函数是用计算机的`原生机器语言编写的,由处理器直接执行。它不会"host"内存,内存不会给你释放,比如C++。 CPU用法可以检测到。

and what is the difference between total CPU% and self CPU%.

总计 CPU%

The milliseconds and CPU percentage used by calls to the function, and functions called by the function, in the selected time range.

And Total CPU 表示函数及其调用的任何函数完成了多少工作。高总 CPU 值指向总体上最昂贵的函数。

自己CPU%

The milliseconds and CPU percentage used by calls to the function in the selected time range, excluding functions called by the function.

Self CPU表示函数体内的代码做了多少工作,不包括它调用的函数所做的工作。高 Self CPU 值可能表示函数本身存在性能瓶颈。

您可以参考this official document and Measure application performance by analyzing CPU usage了解更多详细信息。