웹페이지에서 이미지를 더 빠르게 가져오는 방법
주어진 URL에서 이미지를 가져올 때 특정 기준을 충족하면 프로세스의 효율성이 향상될 수 있습니다. . 이 글에서는 길이가 긴 기본 방법에 비해 프로세스 속도를 높이는 것을 목표로 너비와 높이가 200픽셀 이상인 이미지를 추출하는 데 중점을 둘 것입니다.
빠른 이미지 검색
기존 접근 방식에서는 소스 URL에서 각 이미지를 순차적으로 검색하고 getimagesize()를 사용하여 크기를 확인합니다. 그러나 이 방법은 속도가 느리고 리소스가 많이 소모될 수 있습니다. 속도를 최적화하려면 다음 개선 사항을 고려하세요.
1. 병렬성 활용:
curl_multi_init() 함수를 활용하여 여러 동시 HTTP 요청을 실행하고 이미지를 병렬로 검색합니다. 이 접근 방식은 사용 가능한 대역폭을 활용하여 응답 시간을 크게 줄입니다.
2. 이미지를 로컬에 저장:
원격 이미지에 대해 getimagesize()를 호출하지 마세요. 대신, 이미지를 로컬 임시 디렉터리에 다운로드하고 그곳에서 크기를 결정하세요. 이 단계를 수행하면 추가 HTTP 요청 전송과 관련된 지연이 제거됩니다.
추가 고려 사항:
향상된 성능:
위 기술을 구현하면 이미지 검색 속도가 획기적으로 빨라질 수 있습니다. 다음 예를 고려하십시오.
<code class="php">// Start the timer $start = microtime(); // Fetch images using curl_multi_init $res = imageDownload($nodes, 200, 200); // Stop the timer and display elapsed time echo "<h1>", microtime() - $start, "</h1>"; function imageDownload($nodes, $maxHeight = 0, $maxWidth = 0) { // ... (curl_multi_init code here) ... // ... (curl_multi_exec code here) ... $res = array(); // ... (image processing code here) ... return $res; }</code>
샘플 출력:
Array ( [0] => temp/img8cdd64d686ee6b925e8706fa35968da4.gif [1] => temp/img5811155f8862cd0c3e2746881df9cd9f.gif [2] => temp/imga597bf04873859a69373804dc2e2c27e.jpg [3] => temp/img0914451e7e5a6f4c883ad7845569029e.jpg [4] => temp/imgb1c8c4fa88d0847c99c6f4aa17a0a457.jpg [5] => temp/img36e5da68a30df7934a26911f65230819.jpg [6] => temp/img068c1aa705296b38f2ec689e5b3172b9.png [7] => temp/imgfbeca2410b9a9fb5c08ef88dacd46895.png ) 0.076347
이 개선된 접근 방식은 원래 구현에 비해 상당한 성능 향상을 가져오고 처리 시간을 다음과 같이 줄입니다. 거의 40초.
위 내용은 ## 웹페이지에서 이미지 검색 속도를 어떻게 높일 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!