- 论坛徽章:
- 0
|
如下代码最多能并发多少个http请求,我在虚拟机上测试结果如下图,为什么会这么低,是我电脑配置不行还是代码需要优化?
- 1 #!/usr/bin/perl
- 2 use threads;
- 3 use threads::shared;
- 4 use Mojo::UserAgent;
- 5 print "Startingmainprogram\n";
- 6 for(my $cou=1;$cou<=5;$cou++){
- 7 my$pid=fork();
- 8 if($pid==0){
- 9 #child
- 10 sub1(0.001);
- 11 }
- 12 }
- 13 sub sub1{
- 14 my $num=shift;
- 15 sleep $num;
- 16 for(my $count=1;$count<=100;$count++){
- 17 $t=threads->new(\&sub2,0.001);
- 18 #$t->detach();
- 19 push(@threads,$t);
- 20 }
- 21 }
- 22 foreach (@threads) {
- 23 my $num = $_->join;
- 24 print "done with $num\n";
- 25 }
- 26 sub sub2{
- 27 my $num=shift;
- 28 sleep $num;
- 29 $i=0;
- 30 while($i<10){
- 31 my $ua=Mojo::UserAgent->new;
- 32 $tx=$ua->get("http://10.20.64.210/");
- 33 if(my $res=$tx->success)
- 34 {
- 35 print "a\n";
- 36 }
- 37 }
- 38 }
复制代码 |
|