2015-05-21 15 views
5

बढ़ाएं मैं flipkart.com द्वारा प्रदान की गई एक एपीआई का उपयोग कर रहा हूं, इससे मुझे json के रूप में परिणाम आउटपुट खोजने और प्राप्त करने की अनुमति मिलती है।कर्ल स्पीड php

कोड मैं का उपयोग कर रहा है:

$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}"; 

और समय ले जा रहा है है: Process Time: 5.3794288635254

है किस तरह बहुत ज्यादा, पर किसी भी विचार कैसे इस को कम करने के?

+0

यदि आपके पास यही एकमात्र कोड है तो प्रक्रिया समय ज्यादातर यूआरएल द्वारा लिया जाता है जिसे आप बुला रहे हैं। आपके कोड में कुछ और नहीं है जो 5 सेकंड –

+0

यूप ले सकता है! यह एकमात्र कोड है, मैं बाद में 'json_decode' करता हूं लेकिन यह सिर्फ 0.0034 एमएस – IdidntKnewIt

+2

लेता है फिर एपीआई धीमा है, आप इसके बारे में कुछ नहीं कर सकते हैं –

उत्तर

0

मैं देखता हूं कि आप अपने टर्मिनल/कंसोल विंडो में अपने सर्वर कनेक्शन की गति निर्धारित कर सकते हैं या नहीं। इससे वेब पर संसाधन तक पहुंचने में लगने वाले समय पर बहुत असर पड़ेगा। साथ ही, आप संसाधन से प्राप्त प्रतिक्रिया समय के बारे में सोचने पर विचार करना चाहेंगे, क्योंकि पृष्ठ को अनुरोधित जानकारी प्राप्त करने और उसे वापस भेजने की आवश्यकता है।

मैं रात में देर से क्रोनबॉज का उपयोग करके आपको जितनी अधिक जानकारी की आवश्यकता होती है, उसे बचाने पर विचार करता हूं ताकि आपको इसे पहले से संभालना पड़े।

1

अधिक सटीक जानकारी प्राप्त करने के लिए curl_getinfo() का उपयोग करें। यह भी पता चलता है कितना समय खर्च को हल करने के लिए DNS आदि

आप निम्न कुंजी के साथ प्रत्येक चरण के लिए ले लिया सही समय देख सकते हैं:

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 

अधिकांश शायद, एपीआई धीमी है।

आप एक तेज़ DNS सर्वर (लिनक्स में: /etc/resolv.conf) में बदलने की कोशिश कर सकते हैं।

इसके अलावा, आप जितना भी कर सकते हैं उतना नहीं।

+0

curl_getinfo() curl_info() नहीं – h0mayun