원격 이미지에 대한 getimagesize 성능 가속화
Getimagesize는 원격 이미지의 크기를 결정하는 데 자주 사용됩니다. 그러나 많은 수의 이미지를 처리하는 경우 시간이 많이 걸릴 수 있습니다.
file_get_contents를 사용하여 이미지 데이터의 작은 부분을 가져온 후 이를 분석하여 크기를 검색하는 것이 더 빠른 접근 방식입니다. 이 방법은 전체 이미지를 로드하는 오버헤드를 방지합니다.
다음은 레인저 기능을 사용하여 이 기술을 구현하는 방법에 대한 예입니다.
<code class="php">function ranger($url) { $headers = ["Range: bytes=0-32768"]; $curl = curl_init($url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); curl_close($curl); return $data; }</code>
향상된 성능을 입증하려면 다음 예를 고려하세요. :
<code class="php">$start = microtime(true); $url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg"; $raw = ranger($url); $im = imagecreatefromstring($raw); $width = imagesx($im); $height = imagesy($im); $stop = round(microtime(true) - $start, 5); echo $width." x ".$height." ({$stop}s)";</code>
테스트에서 처음 32KB의 이미지 데이터를 가져오는 것은 놀라운 성능 향상을 제공했습니다.
640 x 480 (0.20859s)
이 접근 방식은 원격 이미지의 크기를 결정하는 데 필요한 시간을 크게 줄여줍니다. 대규모 데이터 세트를 처리하는 데 이상적입니다.
위 내용은 원격 이미지에 대한 getimagesize 성능을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!