首页 新闻 会员 周边

程序性能问题

0
悬赏园豆:50 [已解决问题] 解决于 2010-01-11 15:40

如果一个方法内含有一个for循环,测出这个方法执行需要20秒,当有100个客户端同时访问时,方法执行时并行还是串行的。如果是串行的那不是最后一个相应的客户为2000秒?
   方法应该是引用变量,那就是说所有用户都同时访问同一个地址的内容?
   求解,最好比较详细

菜鸟吃虫,虫吃菜的主页 菜鸟吃虫,虫吃菜 | 初学一级 | 园豆:34
提问于:2010-01-08 17:18
< >
分享
最佳答案
0

这个问题要这么分析,for 循环执行20秒 时CPU占用率是多少,如果是100%(单CPU环境) ,那么并发时虽然是多线程并行处理,但由于CPU资源有限,并行处理的多个线程并不能得到足够的CPU资源,那么100个客户并发时其响应时间很可能是每个客户都是2000秒(因为是并行)。如果CPU不是100%,那么要具体分析程序的阻塞是怎么造成的,是IO,还是数据库调用还是锁定,网络等等,多线程并发时在这种情况下要考虑的问题更多,比如数据库的锁定问题,内核对象的互锁问题,IO的并行访问问题等等。

收获园豆:50
eaglet | 专家六级 |园豆:17139 | 2010-01-11 09:24
其他回答(2)
0

现在的程序,基本上是多线程的了,特别是web,所以你不用担心

 

所有方法都可以同时访问同一个地址的内容,但是若要修改,请记得加锁,否则你将会有万分之一的几率出错^_^

大石头 | 园豆:110 (初学一级) | 2010-01-09 09:50
0

对于每个客户端,服务器都会为其new一个类的实例为其单独作响应,肯定是并行```串行还了得····

【当耐特】 | 园豆:645 (小虾三级) | 2010-01-09 18:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册