我不明白为什么在 laravel forge 和 laravel homestead 上的 guzzle 请求真的很慢。我没有更改 forge 和 homestead 上的默认服务器配置。
每一个像这样的简单请求......
$client = new GuzzleHttp\Client();
$response = $client->get('path-to-my-api');
...大约需要 150 毫秒(在宅基地和锻造上)。这附加在每个请求(相同的网络或互联网)上。我读了一些关于 guzzle 的帖子,对于每个用户来说似乎都很快,但对我来说却不是。
版本:
- curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
- PHP 版本 5.6.0
- 狂饮 5.1.0
真正奇怪的是,当我这样做时(异步)......
$req = $client->createRequest('GET', 'path-to-my-api', ['future' => true]);
$client->send($req)->then(function ($response) {
});
...大约需要 10 毫秒。这很棒,但我不明白为什么。而且我不想执行异步请求。
也许我的时间测量是错误的,但我认为没关系:我使用这样的 PHP 调试栏:
// .....
// synch
Debugbar::startMeasure('synch','SYNCH Request');
$response = $client->get('path-to-my-api');
Debugbar::stopMeasure('synch');
// asynch
Debugbar::startMeasure('asynch','ASYNCH Request');
$req = $client->createRequest('GET', 'path-to-my-api', ['future' => true]);
$client->send($req)->then(function ($response) {
Debugbar::stopMeasure('asynch');
});
我知道回答这个问题并不容易(因为它很模糊),但我现在不知道:(。如果你愿意,我可以编辑它。非常感谢。