테스트 사이트 - 개발 중인 베타 버전입니다

php 메모리 부족 현상 해결 후 이미지 게시판 로딩속도 문제

JohnCorder 9년 전 조회 6,339

안녕하세요. 신입입니다..꾸벅꾸벅^^

 

제가 갑자기 관리를 맡게 된 옛날 제로보드로 만든 홈페이지 갤러리 게시판 상에서 메모리 부족 오류로 갤러리 게시판이 동작하지 않아 오류가 발생한 해당 php 코드 안에 php 메모리 용량을 올려주는 코드 (ini_set('memory_limit','128M');)를  넣었더니 다행이 오류는 해제되고 이미지 썸네일이 뜨는데....

너무 오래 걸립니다. 속도를 측정하니 무려 1.9분이 걸립니다.;;;;;

이미지를 올릴 때 해당 이미지를 메모리에 넣어서 썸네일로 뿌려주는 과정에서 생긴 문제인거 같은데..
(참고로, 그 홈페이지에 올리는 이미지들이 2-4메가짜리를 올리고 한페이지에 올라오는 썸네일 게시 이미지는 약 20개정도 됩니다. )

메모리를 해결했더니 로딩 시간이 너무 오래 걸려서 답답해 죽겠네요...;;;

이거 해결 방법이 없을까요? 제가 코드 위치를 맨위에다 중간에다 끝에 놔도 마찬가지이더이다..;;;

참고로 해당 php 코드는 아래와 같습니다.

 

<?

ini_set('memory_limit','128M');

set_time_limit(200);

function resizeimage($rewidth,$reheight,$smallfile,$picture){
 $picsize=getimagesize($picture);
 if($picsize[2]===1) {
  @header("Content-Type: images/gif");
  $dstimg=ImageCreateTrueColor($rewidth,$reheight);
  $srcimg=@ImageCreateFromGIF($picture);
  imagecopyresampled($dstimg, $srcimg,0,0,0,0,$rewidth,$reheight,ImageSX($srcimg),ImageSY($srcimg));               
  Imagegif($dstimg,$smallfile,76);
 }
 elseif($picsize[2]===2) {
  @header("Content-Type: images/jpeg");
  $dstimg=ImageCreateTrueColor($rewidth,$reheight);
  $srcimg=ImageCreateFromJPEG($picture);
  imagecopyresampled($dstimg, $srcimg,0,0,0,0,$rewidth,$reheight,ImageSX($srcimg),ImageSY($srcimg));
  @Imagejpeg($dstimg,$smallfile,76);
 }
 elseif($picsize[2]===3) {
  @header("Content-Type: images/png");
  $dstimg=ImageCreateTrueColor($rewidth,$reheight);
  $srcimg=ImageCreateFromPNG($picture);
  imagecopyresampled($dstimg, $srcimg,0,0,0,0,$rewidth,$reheight,ImageSX($srcimg),ImageSY($srcimg));
  Imagepng($dstimg,$smallfile,76);
 }
 @ImageDestroy($dstimg);
 @ImageDestroy($srcimg);
}

?>

 

 

여러 선배님들의 고견 부탁드립니다. (_._)

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

c
9년 전

기본 등록 이미지 제한은 어떻게 해야 하는 건가요? 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
port443
9년 전
이미지 업로드 시 file 함수로 사이즈 체크 가능합니다.
http://php.net/manual/kr/reserved.variables.files.php

댓글을 작성하려면 로그인이 필요합니다.

p
9년 전

완벽한 소스를 보지 못하여 추측이지만..

이미지 자체가 커서 리사이징이 오래 걸린다고 보여집니다.

기본 등록 이미지의 제한이 필요해보이네요.

원본 사이즈가 크면 클수록 리사이징 처리가 오래 걸리는건 어찌보면 당연해보이구요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인