谢谢, agentzh

2009/8/26 agentzh <[email protected]>

> 2009/8/26 Mike.G <[email protected]>
>
>> 我刚去看了那篇文章,有些地方不是太明白。
>> 比如说: inclusive times
>> 这个时间到底怎么理解呢?
>
>
> 通过一个小例子来解释它是最容易的 :) 记得好几年前我也曾犯过迷糊,哈哈!
>
> 考虑下面的程序:
>
> sub a { for (1..100000) { print 'a' x 100 }; b() }
> sub b { for (1..100000) { print 'b' x 100 } }
> a();
>
> 将之保存为 test.pl,然后用 DProf 去运行:
>
> perl -d:DProf test.pl
>
> 再观察 exclusive 输出:
>
> $ dprofpp
> Total Elapsed Time = 0.089996 Seconds
>   User+System Time = 0.079996 Seconds
> Exclusive Times
> %Time ExclSec CumulS #Calls sec/call Csec/c  Name
>  50.0   0.040  0.040      1   0.0400 0.0400  main::b
>  50.0   0.040  0.080      1   0.0400 0.0800  main::a
>
> 这里虽然函数 a 调用了函数 b,但这里的 a 函数的时间是不包括它自己调用的其他函数,比如 b 的时间的,即二者各占一半(50.0%)。
>
> 再看看 inclusive 输出:
>
> $ dprofpp -I
> Total Elapsed Time = 0.089996 Seconds
>   User+System Time = 0.079996 Seconds
> Inclusive Times
> %Time ExclSec CumulS #Calls sec/call Csec/c  Name
>  100.   0.040  0.080      1   0.0400 0.0800  main::a
>  50.0   0.040  0.040      1   0.0400 0.0400  main::b
>
> 这里 a 函数的时间就包括了其自身以及它调用的函数 b 的时间了,我们看到,达到 100%,呵呵。而 b
> 函数因为未调用其他函数,故时间比例无变化,依旧是 50.0% :)
>
> Happy profiling!
> -agentzh
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复