C# C语言中的时间基准装饰器#
我想(以一种优雅的方式)使用一些自定义方法属性,它将为我提供以下信息: 当我调用这样一个方法foo()时,在某些属性中,我将得到经过的时间(方法调用持续的时间) 我怎么能用C#做呢?反思 先谢谢你。C# C语言中的时间基准装饰器#,c#,.net,benchmarking,C#,.net,Benchmarking,我想(以一种优雅的方式)使用一些自定义方法属性,它将为我提供以下信息: 当我调用这样一个方法foo()时,在某些属性中,我将得到经过的时间(方法调用持续的时间) 我怎么能用C#做呢?反思 先谢谢你。 James在C#中无法截获普通的旧方法调用。要真正做到这一点,您必须发布(预)处理您的C#代码(如PostSharp) 或者,您可以编写一个基准测试方法,用lambda来计时一段代码,但这显然不是真正的装饰器。C#没有提供这种现成的方法。您有几个选择: 使用一些外部分析器(我认为更高版本的VS有一个
James在C#中无法截获普通的旧方法调用。要真正做到这一点,您必须发布(预)处理您的C#代码(如PostSharp) 或者,您可以编写一个基准测试方法,用lambda来计时一段代码,但这显然不是真正的装饰器。C#没有提供这种现成的方法。您有几个选择:
秒表课怎么了?我经常使用它来分析关键代码中的常规计时。如果这还不够,我将切换到ANTS(或dotTrace)。
Action elegantBenchmark=(body)=>
{
var startTime=DateTime.Now;
身体();
Console.WriteLine(DateTime.Now-startTime);
};
优雅的基准(嫁妆);
附言。
PostSharp将按照您的要求完成工作。AOP很整洁。我真的需要玩这个。
Action<Action> elegantBenchmark = (body) =>
{
var startTime = DateTime.Now;
body();
Console.WriteLine(DateTime.Now - startTime);
};
elegantBenchmark(DoWork);