相关疑难解决方法(0)

StackTrace 构造函数和获取方法名称对性能的影响

我的日志库中有这段代码

var stackTrace = new StackTrace();
string operationName = stackTrace.GetFrame(1).GetMethod().Name;
Run Code Online (Sandbox Code Playgroud)

根据我使用 PerfView 工具进行的性能分析,它显示为

图片来自 PerfView etl 文件

有谁知道我添加的代码对性能的影响?如果是,是否有其他方法可以获取方法名称而不会对性能产生更大的影响?

我目前在 4 核机器上以 1000 TPS 的速度运行它。我发现它使用了我的 CPU 的 15.1%

c# performance perfview

4
推荐指数
1
解决办法
980
查看次数

从.NET Core中的当前位置堆栈跟踪

如何从当前位置构造堆栈跟踪?

在.NET 4.5中使用此解决方案:

System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(true);
for (int i = 0; i < stackTrace.FrameCount; ++i)
{
    System.Diagnostics.StackFrame frame = stackTrace.GetFrame(i);
    MethodBase callerMethod = frame.GetMethod();
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是.NET Core中的解决方案是什么?构造public StackTrace(bool fNeedFileInfo)函数不再存在.

.net c# .net-core .net-standard

1
推荐指数
1
解决办法
1506
查看次数

标签 统计

c# ×2

.net ×1

.net-core ×1

.net-standard ×1

performance ×1

perfview ×1