引用
1> percept:profile("test.dat", {tbray9a,start,[]}, [procs]).
Starting profiling.
8900 : 2006/09/29/Dynamic-IDE
2000 : 2006/07/28/Open-Data
1300 : 2003/07/25/NotGaming
800 : 2003/09/18/NXML
800 : 2003/10/16/Debbie
800 : 2006/01/31/Data-Protection
700 : 2003/06/23/SamsPie
600 : 2006/01/08/No-New-XML-Languages
600 : 2006/09/07/JRuby-guys
600 : 2005/07/27/Atomic-RSS
ok
2> percept:analyze("test.dat").
Parsing: "test.dat"
check_activity_consistency, invalid start state: inactive.
insert_trace, bad_state: {profile,<0.30.0>,inactive,
{code_server,call,2},
{1195,446574,24650}}
Parsed 79 entries in 1.79400e-3 s.
5 created processes.
0 opened ports.
ok
3> percept:start_webserver().
{started,"test98",57194}
Starting profiling.
8900 : 2006/09/29/Dynamic-IDE
2000 : 2006/07/28/Open-Data
1300 : 2003/07/25/NotGaming
800 : 2003/09/18/NXML
800 : 2003/10/16/Debbie
800 : 2006/01/31/Data-Protection
700 : 2003/06/23/SamsPie
600 : 2006/01/08/No-New-XML-Languages
600 : 2006/09/07/JRuby-guys
600 : 2005/07/27/Atomic-RSS
ok
2> percept:analyze("test.dat").
Parsing: "test.dat"
check_activity_consistency, invalid start state: inactive.
insert_trace, bad_state: {profile,<0.30.0>,inactive,
{code_server,call,2},
{1195,446574,24650}}
Parsed 79 entries in 1.79400e-3 s.
5 created processes.
0 opened ports.
ok
3> percept:start_webserver().
{started,"test98",57194}
在浏览器打开 http://localhost:57194/ 截图如下:
不错,非常直观,这样不用我在Code中手工加代码测试各process的耗时了。图示结果表明,并行的第2到第5个Processes确实是差不多同时启动,且并行运行。第一个Process是在合并结果,这个非并行的耗时并不是最主要的。而且,erl的启动时间看来也在整个耗时中占了一部分,不过对更大的文件来说这部分时间就不重要了。
另外还添加了Common Test Test Server2个Application来测试erlang的整个系统 用户可以直接写test case 貌似不错。