リアルタイム入札の構築を計画しており、スループット/応答時間などの観点から
PHP
比較のパフォーマンスを評価しています(Java 部分はチームの他のメンバーによって処理されます) 。Java
最初の開始:
さまざまなサーバーへの 50 の http 接続を行うテスト スクリプトがあります。
1 番目のアプローチ
-curl_multi_init
関数を使用していて、7 秒以内に応答が得られます。
2 番目のアプローチ
- 私はPHP
pthreads api
並列呼び出しを使用して試行しており、同じ応答時間以下を期待していますが、平均の合計時間は約 25 秒です。
ここにコードがあります
<?php
$g_request_arr = array(
'0' => array(
'request_url' => 'https://www.google.co.uk/?#q=56%2B12'
),
..
..
..
'49'=>array(
'request_url' => 'https://www.google.co.uk/?#q=256%2B132'
)
);
class ChildThread extends Thread {
public function __construct($urls) {
$this->data = $urls;
}
public function run(){
foreach($this->data as $url_info ){
$url = $url_info['request_url'];
file_get_contents($url);
}
$this->synchronized(function($thread){
$thread->notify();
}, $this);
}
}
$thread = new ChildThread($g_request_arr);
$thread->start();
$thread->synchronized(function($thread){
}, $thread);
?>
上記のコードに何が欠けているのか、または応答を 7 秒以内にできるかどうかを知りたいです。