首页 > Linux, PHP > 两个简单的并发测试方案

两个简单的并发测试方案

发现项目里边经常有并发测试的需求,就记录两条,免得每次都重写。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
  • php方案
  • #!/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 */
    分类: Linux, PHP 标签:
    1. fservice
      2015年5月18日11:17 | #1

      这个测试能 代表什么呢??

    2. qman
      2015年10月3日07:18 | #2

      这个真的能测试并发????

    3. qman
      2015年10月3日07:34 | #3

      这里有些测试缺点,其一 PHP curl 本身就是个消耗很过分的功能,就算请求的代码是简单的json 也会因为 curl的不确定而变得不确定。为此所测试并发数据也不能作为有力地参考。其二 PHP的高并发的时候本就不如 ,Java pythonc 怎么稳定,用 php 做 提力工具在这只 能仁者见仁智者见智了

    1. 本文目前尚无任何 trackbacks 和 pingbacks.