>백엔드 개발 >PHP 튜토리얼 >## 웹페이지에서 이미지 검색 속도를 어떻게 높일 수 있나요?

## 웹페이지에서 이미지 검색 속도를 어떻게 높일 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 16:17:291039검색

##  How Can I Speed Up Image Retrieval from a Webpage?

웹페이지에서 이미지를 더 빠르게 가져오는 방법

주어진 URL에서 이미지를 가져올 때 특정 기준을 충족하면 프로세스의 효율성이 향상될 수 있습니다. . 이 글에서는 길이가 긴 기본 방법에 비해 프로세스 속도를 높이는 것을 목표로 너비와 높이가 200픽셀 이상인 이미지를 추출하는 데 중점을 둘 것입니다.

빠른 이미지 검색

기존 접근 방식에서는 소스 URL에서 각 이미지를 순차적으로 검색하고 getimagesize()를 사용하여 크기를 확인합니다. 그러나 이 방법은 속도가 느리고 리소스가 많이 소모될 수 있습니다. 속도를 최적화하려면 다음 개선 사항을 고려하세요.

1. 병렬성 활용:

curl_multi_init() 함수를 활용하여 여러 동시 HTTP 요청을 실행하고 이미지를 병렬로 검색합니다. 이 접근 방식은 사용 가능한 대역폭을 활용하여 응답 시간을 크게 줄입니다.

2. 이미지를 로컬에 저장:

원격 이미지에 대해 getimagesize()를 호출하지 마세요. 대신, 이미지를 로컬 임시 디렉터리에 다운로드하고 그곳에서 크기를 결정하세요. 이 단계를 수행하면 추가 HTTP 요청 전송과 관련된 지연이 제거됩니다.

추가 고려 사항:

  • URL에 명시적인 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.