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

C# StackTrace构造函数和获取方法名称对性能的影响,c#,performance,perfview,C#,Performance,Perfview,我在我们的日志库中有这段代码 var stackTrace = new StackTrace(); string operationName = stackTrace.GetFrame(1).GetMethod().Name; 根据我使用PerfView工具进行的性能分析,它显示为 有人知道我添加的代码对性能的影响吗? 如果是,是否有其他方法可以在不影响性能的情况下获得方法名 我目前在4核机器上以1000 TPS的速度运行它。我发现,从C#5开始,it使用了我15.1%的CPU,让编译器将其

我在我们的日志库中有这段代码

var stackTrace = new StackTrace();
string operationName = stackTrace.GetFrame(1).GetMethod().Name;
根据我使用PerfView工具进行的性能分析,它显示为

有人知道我添加的代码对性能的影响吗? 如果是,是否有其他方法可以在不影响性能的情况下获得方法名

我目前在4核机器上以1000 TPS的速度运行它。我发现,从C#5开始,it使用了我15.1%的CPU,让编译器将其烘焙到调用站点肯定会更好,使用

然后:

。。。由C#编译器转换为

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

很好的解决方案,谢谢。将使用此代码验证性能并回复。
public void DoSomething()
{
    logger.Log("A message");
}
public void DoSomething()
{
    logger.Log("A message", "DoSomething");
}