惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - ∈鱼杆

TraceView .NET WAP网站开发系列 ASP.NET RSS开发札记(完结) MonoRail MVC实践应用(完结) HowTo:String.Format新方法 HowTo:C#性能测试扩展函数 Python性能测试工具 Excel分类汇总宏(VBA) Python性能测试工具 MonoRailMVC应用-母板页的Title 面向方面的编程在Cache、Log、Trace方面的运用 MonoRail MVC应用(2)-构建多层结构的应用程序 MonoRail MVC应用(1)-VM/HTML页面 MonoRail MVC实践应用 W3WP进程CPU查看 innerHTML和P标签 [转] 有关敏捷的若干思考 .NET WAP开发及兼容问题 ASP.NET分页控件(AspNetPager分页控件)
HowTo:C#性能测试扩展函数
∈鱼杆 · 2008-12-22 · via 博客园 - ∈鱼杆

看了ark的文章让我想起了些这个。可能没有太多的实际意义,但确是一个不错的思路。
我们平时在使用stopwatch统计时间的时候一般会这样使用。

Stopwatch watch = Stopwatch.StartNew();
for (int i = 0; i < runs; i++)
{
.......
}
watch.Stop();

这样就可以统计到运行的时间,但用过Python的人都知道,python自备电池。那么其实用扩展函数就可以实现这个类似功能(PS:其实功能还是相差蛮大的,但皮已经画的很像了)。
先演示如何使用(统计A.Run这个方法的使用时间)

class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            Action act = a.Run;
            Console.WriteLine(act.Profile(100));
            Console.Read();
        }
    }
    public class A
    {
        public void Run()
        {
            for (int i =0; i < 100000; i++) ;
        }
    }
}

用扩展方法来实现这个需求,这样就不用重复写stopwatch了

public static class FunctionHelper
    {
        public static string Profile(this Action func, int runs)
        {     Stopwatch watch = Stopwatch.StartNew();   for (int i = 0; i < runs; i++)
            {
                func();
            }
            watch.Stop();   float sec = watch.ElapsedMilliseconds / 1000.0f;
            float freq = runs / sec;     return String.Format("execute runs:{0};sec:{1};freq",
                                runs,  //运行次数 
                                sec,   // 运行时间
                                freq // 平均运行时间
                                );   }   }

有了这个扩展方法,你就可以对某些特定的方法自动调用性能函数了。