gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:24:02 28 4
gpt4 key购买 nike

我的日志库中有这段代码

var stackTrace = new StackTrace();
string operationName = stackTrace.GetFrame(1).GetMethod().Name;

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

Picture from PerfView etl file

有人知道我添加的代码对性能的影响吗?如果是,是否有任何其他方法可以在不对性能产生更大影响的情况下获取方法名称?

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

最佳答案

从 C# 5 开始,使用 [CallerMemberName] 让编译器将其放入调用站点会更好绝对

public void Log(string message, [CallerMemberName] caller = null)
{
}

然后:

public void DoSomething()
{
logger.Log("A message");
}

...被C#编译器转换成

public void DoSomething()
{
logger.Log("A message", "DoSomething");
}

关于c# - StackTrace 构造函数和获取方法名称对性能的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33528415/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com