Increase CURL php speed

I use the API provided by flipkart.com, this allows me to search and retrieve results as json .

The code I use is:

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

and the time it takes: Process Time: 5.3794288635254

What too much, any ideas on how to reduce this?

+5
source share
2 answers

Use curl_getinfo() for more accurate information. It also shows how much time has been spent resolving DNS, etc.

You can see the exact time for each step with the following keys:

 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 

Most likely the API is slow.

You can try switching to a faster DNS server (on Linux: /etc/resolv.conf ).

Other than that, little can be done.

+1
source

I would see if you can determine the connection speed of your servers in the terminal / console window. This would significantly affect the time required to access the resource on the Internet. In addition, you might think about the response time that is required from the resource, since the page should receive the requested information and send it back.

I would also like to save as much information as you need using a cronjob late at night, so you don't have to cope with this advance.

0
source

All Articles