2012-01-26 1 views
0

이미지를 사용할 수 있는지 확인하는 PHP 파일이 있습니다. 이미지가 있으면 이미지가 사용자에게 반환되고 그렇지 않으면 이미지가 만들어져 사용자에게 반환됩니다.이미지 출력 성능 최적화

if(file_exists($filepath)) { 
    $fp = fopen($filepath, 'rb'); # stream the image directly from the cachefile 
    fpassthru($fp); 
    exit; 
} 

내가이 내가 "file_exists"를 건너 뛸 수 호출을 최적화하고 단지하려고 생각 "fopen을"이 "거짓"경우 그렇지 않으면 내가 직접 반환, 나는 이미지를 만들 반환 (맞습니까?).

내가 알고 싶은 것은 이것이 PHP에서 이미지를로드하는 가장 빠른 방법인가? 그 전에 나는 imagepng($image)을 사용하지만 fpassthru이 방법은 빠른 읽기 : http://www.php.net/manual/en/function.imagepng.php#103787

답변

1

가장 빠른 방법은 처음에 PHP를 통해 이미지를 처리 ​​할 수 ​​없습니다. 기존 파일을 처리하는 역방향 프록시 서버를 사용하고 PHP 스크립트라는 기존 파일이 아닌 각각의 파일에 대해 사용합니다.

다음으로 file_exists()에 대한 호출을 제거하면 미세 최적화가됩니다. 그러나 파일이 존재하지 않으면 PHP는 경고를 발생시키고, 로그에 기록하고, 설정에 따라 출력합니다 ... CPU 측면에서 보면 file_exists 호출보다 비쌉니다.