2015-05-21 18 views
5

Tôi đang sử dụng API do flipkart.com cung cấp, điều này cho phép tôi tìm kiếm và nhận kết quả đầu ra là json.Tăng tốc độ CURL php

Mã Tôi đang sử dụng là:

$snapword = $_GET['p']; 
$snapword = str_replace(' ','+',$snapword); 

$headers = array(
      'Fk-Affiliate-Id: myaffid', 
      'Fk-Affiliate-Token: c0f74c4esometokesndad68f50666' 
      ); 
$pattern = "@\(.*?\)@"; 
$snapword = preg_replace($pattern,'',$snapword); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://affiliate-api.flipkart.net/affiliate/search/json?query='.$snapword.'&resultCount=5'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_ENCODING , "gzip"); 
curl_setopt($ch, CURLOPT_USERAGENT,'php'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$snapdeal = curl_exec($ch); 
curl_close($ch); 
$time_end = microtime(true); 
$time = $time_end - $time_start; 
echo "Process Time: {$time}"; 

và thời gian nó được tham gia là: Process Time: 5.3794288635254

Đó là cách quá nhiều, bất kỳ ý tưởng về làm thế nào để giảm này?

+0

Nếu đó là mã duy nhất bạn có thì thời gian xử lý chủ yếu được lấy bởi url bạn đang gọi. Không có gì khác trong mã của bạn có thể mất 5 giây –

+0

Yupp! đó là mã duy nhất, sau đó tôi làm 'json_decode' nhưng nó chỉ mất 0,0034 MS – IdidntKnewIt

+2

Sau đó api là chậm, không có gì bạn có thể làm về nó –

Trả lời

0

Tôi sẽ xem liệu bạn có thể xác định tốc độ kết nối máy chủ của mình trong cửa sổ thiết bị đầu cuối/bảng điều khiển hay không. Điều này sẽ ảnh hưởng rất lớn đến thời gian cần thiết để truy cập tài nguyên trên web. Ngoài ra, bạn có thể muốn cân nhắc suy nghĩ về thời gian phản hồi từ tài nguyên, vì trang cần nhận thông tin được yêu cầu và gửi lại.

Tôi cũng sẽ xem xét lưu càng nhiều thông tin mà bạn cần bằng cách sử dụng cronjob muộn vào ban đêm để bạn không phải xử lý trả trước này.

1

Sử dụng curl_getinfo() để truy xuất thông tin chính xác hơn. Nó cũng cho thấy có bao nhiêu thời gian dành cho việc giải quyết các DNS, vv

Bạn có thể nhìn thấy thời gian chính xác được thực hiện cho từng bước với các phím sau:

CURLINFO_TOTAL_TIME - Total transaction time in seconds for last transfer 
CURLINFO_NAMELOOKUP_TIME - Time in seconds until name resolving was complete 
CURLINFO_CONNECT_TIME - Time in seconds it took to establish the connection 
CURLINFO_PRETRANSFER_TIME - Time in seconds from start until just before file transfer begins 
CURLINFO_STARTTRANSFER_TIME - Time in seconds until the first byte is about to be transferred 
CURLINFO_SPEED_DOWNLOAD - Average download speed 
CURLINFO_SPEED_UPLOAD - Average upload speed 


$info = curl_getinfo($curl); 
echo $info['connect_time']; // Same as above, but lower letters without CURLINFO 

lẽ nhiều nhất, API là chậm.

Bạn có thể thử đổi sang máy chủ DNS nhanh hơn (trong Linux: /etc/resolv.conf).

Ngoài ra, bạn không thể làm được gì nhiều.

+0

curl_getinfo() NOT curl_info() – h0mayun

Các vấn đề liên quan