两个简单的并发测试方案
		
		
			发现项目里边经常有并发测试的需求,就记录两条,免得每次都重写。bash的方案主要是方便在Linux下调试,php方案主要是方便在非Linux的操作系统下调试。
Linux bash实现
| #!/bin/bash
for ((i=0;i<100;i++));do 
{
    #并发测试代码可放这儿
    echo $i>>aa && echo $i
}&
done
wait
cat aa|wc -l
rm aa | 
#!/bin/bash
for ((i=0;i<100;i++));do 
{
    #并发测试代码可放这儿
    echo $i>>aa && echo $i
}&
done
wait
cat aa|wc -l
rm aa
| #!/usr/bin/php5
<?php
$n =  10; // 并发条数
$ch = array();
for($i=0; $i<$n; $i++) {
    $ch[$i] = curl_init();
    $m = microtime();
    curl_setopt($ch[$i], CURLOPT_URL, "http://www.fengdingbo.com?concurrency_test");
    curl_setopt($ch[$i], CURLOPT_HEADER, 0);
}
$mh = curl_multi_init();
 
// 增加n个句柄
foreach ($ch as $v) {
    curl_multi_add_handle($mh,$v);
}
 
$running=null;
// 执行批处理句柄
do {
    curl_multi_exec($mh,$running);
} while($running > 0);
 
// 关闭全部句柄
foreach ($ch as $v) {
    curl_multi_remove_handle($mh, $v);
}
curl_multi_close($mh);
 
/* End of file */ | 
#!/usr/bin/php5
<?php
$n =  10; // 并发条数
$ch = array();
for($i=0; $i<$n; $i++) {
    $ch[$i] = curl_init();
    $m = microtime();
    curl_setopt($ch[$i], CURLOPT_URL, "http://www.fengdingbo.com?concurrency_test");
    curl_setopt($ch[$i], CURLOPT_HEADER, 0);
}
$mh = curl_multi_init();
// 增加n个句柄
foreach ($ch as $v) {
    curl_multi_add_handle($mh,$v);
}
$running=null;
// 执行批处理句柄
do {
    curl_multi_exec($mh,$running);
} while($running > 0);
// 关闭全部句柄
foreach ($ch as $v) {
    curl_multi_remove_handle($mh, $v);
}
curl_multi_close($mh);
/* End of file */
 
		
	 
	
		
	
	
	
	
这个测试能 代表什么呢??
这个真的能测试并发????
这里有些测试缺点,其一 PHP curl 本身就是个消耗很过分的功能,就算请求的代码是简单的json 也会因为 curl的不确定而变得不确定。为此所测试并发数据也不能作为有力地参考。其二 PHP的高并发的时候本就不如 ,Java pythonc 怎么稳定,用 php 做 提力工具在这只 能仁者见仁智者见智了