【发布时间】:2013-12-19 08:44:21
【问题描述】:
我有以下几点:
public class Logger
{
public static void LogStartMethod(MethodBase method)
{
Console.WriteLine("{0} Method '{1}' started", DateTime.Now, method.Name);
}
public static void LogStartMethod1()
{
StackTrace stackTrace = new StackTrace();
MethodBase method = stackTrace.GetFrame(0).GetMethod();
LogStartMethod(method);
}
public static void LogStartMethod2()
{
MethodBase method = MethodBase.GetCurrentMethod();
LogStartMethod(method);
}
}
我想确定 LogStartMethod1 或 LogStartMethod2 之间性能最高的方法...
让我们抽象一下具体方法的作用,但是否有工具(在线或 Visual Studio 插件)能够比较两种方法的性能?
我现在有很多商业性能分析器......我们应该付费或使用 Visual Studio Ultimate 来为整个解决方案提供性能工具......
我只想比较2种方法,都是……
【问题讨论】:
-
Performance完全是主观的。速度?内存使用情况?内存泄漏? CPU 使用率? -
速度......如果可能的内存使用,为什么不,但速度很重要。
-
性能分析也包含在 Visual Studio Premium 中。
-
你想在这里实现什么?你只是想输出调用方法吗?
-
@Serge 昨晚有个想法,在运行时分析堆栈时小心。您在发布模式下获得的堆栈跟踪可能会更短。这是因为编译器倾向于内联较小的方法(如属性访问器)。不要依赖输出!
标签: .net visual-studio-2010 performance-testing