1. 程式人生 > >PHP模擬高併發

PHP模擬高併發

PHP模擬高併發

什麼是高併發?

高併發(High Concurrency)是網際網路分散式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。

高併發相關常用的一些指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS(Query Per Second),併發使用者數等。

響應時間:系統對請求做出響應的時間。例如系統處理一個HTTP請求需要200ms,這個200ms就是系統的響應時間。

吞吐量:單位時間內處理的請求數量。

QPS:每秒響應請求數。在網際網路領域,這個指標和吞吐量區分的沒有這麼明顯。

併發使用者數:同時承載正常使用系統功能的使用者數量。例如一個即時通訊系統,同時線上量一定程度上代表了系統的併發使用者數。
原文連結:https://blog.csdn.net/DreamWeaver_zhou/article/details/78587580

簡單模擬高併發

就是想辦法一次性多個程式訪問同一個程式

start.php(開始程式,原理迴圈開啟多個視窗)

<?php
$end = 10;//開啟視窗數量 也就是併發訪問數量
for ($i=0; $i < $end; $i++) { 
	echo '<script language="javascript">window.open ("test.php", "_blank");</script>';
}
?>

test.php(測試程式,原理迴圈訪問同一程式,由於是同時訪問test.php的,所以接下來的程式就會重複響應)

<?php
$end = 100;//迴圈訪問介面 達到高併發效果
for ($i=0; $i < $end; $i++) { 
	//要測試的介面 可以換成實際的介面
	$a = file_get_contents('http://localhost/high_concurrency/count.php');
	var_dump($a);//輸出返回值 可有可無
}
?>

count.php(介面程式,原理讀取檔案數字,加1返回,記住新建countlog.txt檔案)

<?php
	$datei = fopen("countlog.txt","r");
	$count = fgets($datei,1000);
	fclose($datei);
	$count=$count + 1 ;
	$datei = fopen("countlog.txt","w");
	fwrite($datei, $count);
	fclose($datei);
	return $count;
?>