免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3662 | 回复: 5
打印 上一主题 下一主题

多进程&多线程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-24 17:00 |只看该作者 |倒序浏览
如下代码最多能并发多少个http请求,我在虚拟机上测试结果如下图,为什么会这么低,是我电脑配置不行还是代码需要优化?

  1. 1 #!/usr/bin/perl
  2.   2 use threads;
  3.   3 use threads::shared;
  4.   4 use Mojo::UserAgent;
  5.   5 print "Startingmainprogram\n";
  6.   6 for(my $cou=1;$cou<=5;$cou++){
  7.   7 my$pid=fork();
  8.   8 if($pid==0){
  9.   9 #child
  10. 10 sub1(0.001);
  11. 11 }
  12. 12 }
  13. 13 sub sub1{
  14. 14 my $num=shift;
  15. 15 sleep $num;
  16. 16 for(my $count=1;$count<=100;$count++){
  17. 17 $t=threads->new(\&sub2,0.001);
  18. 18 #$t->detach();
  19. 19 push(@threads,$t);
  20. 20 }
  21. 21 }
  22. 22 foreach (@threads) {
  23. 23 my $num = $_->join;
  24. 24 print "done with $num\n";
  25. 25 }
  26. 26 sub sub2{
  27. 27 my $num=shift;
  28. 28 sleep $num;
  29. 29 $i=0;
  30. 30 while($i<10){
  31. 31 my $ua=Mojo::UserAgent->new;
  32. 32 $tx=$ua->get("http://10.20.64.210/");
  33. 33 if(my $res=$tx->success)
  34. 34 {
  35. 35 print "a\n";
  36. 36 }   
  37. 37 }     
  38. 38 }   
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2013-12-25 05:26 |只看该作者
“代码优化”的前提是你程序写的没错;在程序写的没错之前要选一个正确的途径(技术);能够选择一个正确的机制,说明你明白自己的需求并理解你在使用的技术。

如果你都不理解自己在使用的技术。那优化代码就是扯蛋的事。

论坛徽章:
0
3 [报告]
发表于 2013-12-25 12:41 |只看该作者
回复 2# py

斑竹,我的代码有问题吗?就是一个多进程、多线程的代码。


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2013-12-25 14:16 |只看该作者
那写代码就是错误的

你应该用ab或是wrk这样的工具

论坛徽章:
0
5 [报告]
发表于 2013-12-25 15:01 |只看该作者
回复 4# py

错在什么地方呢?烦指导下。


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2013-12-25 16:59 |只看该作者
你这样写的代码本身效率太低,何况你又是一个一个的get

不是说你代码的哪一行错了,而是你整件事一开始就想错了从而选了错误的方法。如果你是要对设备进行并发测试,用工具测试,ab那样的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP