2009/8/26 Mike.G <hylinux@gmail.com>
通过一个小例子来解释它是最容易的 :) 记得好几年前我也曾犯过迷糊,哈哈!
考虑下面的程序:
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!我刚去看了那篇文章,有些地方不是太明白。
比如说: 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% :)
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论