2010-01-21 95 views
1

我有一個PHP CURL請求到一個HTTPS站點,它接受一個JSON和請求並返回一個JSON響應。通常不會超過1秒鐘。但是,我已經看到CURL響應時間是可變的。有時需要4秒才能回覆,有時需要1.2秒。爲什麼會這樣?我如何才能更快速地處理整個請求?變量CURL響應時間

以下是捲曲的響應時間在3個不同時間相同的請求..

Array 
(
    [url] => https://xx.xx.xxx.xx/site/y 
    [content_type] => application/json 
    [http_code] => 200 
    [header_size] => 198 
    [request_size] => 358 
    [filetime] => -1 
    [ssl_verify_result] => 20 
    [redirect_count] => 0 
    [total_time] => 4.213941 
    [namelookup_time] => 2.1E-5 
    [connect_time] => 0.015284 
    [pretransfer_time] => 0.722955 
    [size_upload] => 222 
    [size_download] => 553 
    [speed_download] => 131 
    [speed_upload] => 52 
    [download_content_length] => 0 
    [upload_content_length] => 0 
    [starttransfer_time] => 4.015112 
    [redirect_time] => 0 
) 


Array 
(
    [url] => https://xx.xx.xxx.xx/site/y 
    [content_type] => application/json 
    [http_code] => 200 
    [header_size] => 198 
    [request_size] => 358 
    [filetime] => -1 
    [ssl_verify_result] => 20 
    [redirect_count] => 0 
    [total_time] => 1.27581 
    [namelookup_time] => 8.3E-5 
    [connect_time] => 0.016223 
    [pretransfer_time] => 0.104996 
    [size_upload] => 222 
    [size_download] => 553 
    [speed_download] => 433 
    [speed_upload] => 174 
    [download_content_length] => 0 
    [upload_content_length] => 0 
    [starttransfer_time] => 1.273922 
    [redirect_time] => 0 
) 

Array 
(
    [url] => https://xx.xx.xxx.xx/site/y 
    [content_type] => application/json 
    [http_code] => 200 
    [header_size] => 198 
    [request_size] => 358 
    [filetime] => -1 
    [ssl_verify_result] => 20 
    [redirect_count] => 0 
    [total_time] => 1.294147 
    [namelookup_time] => 7.0E-5 
    [connect_time] => 0.025723 
    [pretransfer_time] => 0.123456 
    [size_upload] => 222 
    [size_download] => 553 
    [speed_download] => 427 
    [speed_upload] => 171 
    [download_content_length] => 0 
    [upload_content_length] => 0 
    [starttransfer_time] => 1.292577 
    [redirect_time] => 0 
) 
+1

這不取決於網站的速度有多快,與捲曲無關嗎? – 2010-01-21 18:06:33

+0

這確實是一個問題,讓你要求更快的網站迴應,而不是更快的迴應。 – 2010-01-21 18:08:20

+0

您是否嘗試過使用瀏覽器訪問「https:// xx.xx.xxx.xx/site/y'並查看需要多長時間?另外,響應數據變化很大嗎?如果沒有,緩存可能是一個選項。 – 2010-01-21 18:15:38

回答

1

還有什麼是該網站在做什麼?如果它有固定數量的線程(比如說),並且每個線程都很忙,那麼你的請求將不得不等待一個線程來處理它。如果沒有線程忙,那麼它會立即被服務。

當然,最簡單的情況是服務器CPU具有有限的資源並提供不確定數量的請求,但沒有服務保證。

+0

這種說法是有道理的。如果網站正在接受JSON請求,處理它一秒鐘,並返回響應,爲什麼會有可變的捲曲時間。我不確定網站是否正在進行多線程。 – Jake 2010-01-21 18:14:15

0

CURL是在PHP中進行HTTP請求的最佳方式。這幾乎肯定是需要時間的服務。喜歡在熟食店排隊等候三明治。如果服務速度不在您的手中,並且您沒有其他可供選擇的服務,那麼最好的辦法就是確保您的頁面上的其他內容在請求發出時繼續加載。