【发布时间】:2013-11-07 15:24:23
【问题描述】:
我们正计划构建实时竞价,我们正在评估 PHP 与 Java 在吞吐量/响应时间等方面的性能。
(Java 部分由团队其他成员负责)
初始开始:
我有一个测试脚本,它可以与不同的服务器建立 50 个 http 连接。
第一种方法
- 我正在使用curl_multi_init 函数,我在 7 秒内得到响应。
第二种方法
- 我正在使用 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 秒内。
【问题讨论】:
-
那么Pthreads和Curl_MULTI哪个更快?
标签: php multithreading curl