私はこの問題を抱えていましたが、誰もこの特定の応答を投稿していないことに驚いています. そうではないかもしれませんが、チェックする価値はあります。
PHP は、ページの処理中にセッション ファイルをロックするため、そのページはそのページに排他的にアクセスできます。sess_184c9aciqoc ファイルはデータベースではないため、同じセッション内の 2 つの呼び出しで同時にアクセスすることはできません。そのため、ajax 呼び出しが多いと、「渋滞」が発生する可能性があります。高度なスクリプト作成を開始すると、これは注意が必要です。ちなみに、これはタイムスタンプの配列を格納する関数です。これを使用して、セッションの開始が原因であることがわかりました。
//time function for benchmarking
if( function_exists('gmicrotime')){
function gmicrotime($n=''){
#version 1.1, 2007-05-09
//store array of all calls
global $mT;
list($usec, $sec) = explode(' ',microtime());
if(!isset($mT['_base_']))$mT['_base_']=$sec;
$t=round((float)$usec + (float)(substr($sec,-4)),6);
$mT['all'][]=$t;
if($n){
if(isset($mT['indexed'][$n])){
//store repeated calls with same index. If in a loop, add a $i if needed
if(is_array($mT['indexed'][$n])){
$mT['indexed'][$n][]=$t;
}else{
$mT['indexed'][$n]=array($mT['indexed'][$n],$t);
}
}else $mT['indexed'][$n]=$t;
}
//return elapsed since last call (in the local array)
$u=$mT['all'];
if(count($u)>1){
$mT['_total_']=$u[count($u)-1] - $u[0];
return round(1000*($u[count($u)-1]-$u[count($u)-2]),6);
}
}
gmicrotime('pageStart');
}
次に、次のように呼び出します。
gmicrotime('beforeSessionStart');
session_start();
gmicrotime('afterSessionStart');
do_something_slow();
gmicrotime('afterSlowProcess');
//etc..
echo '<pre>';
print_r($mT);
これが役に立てば幸いです!