그누보드에 ob_start 써보셨나요? 정보
그누보드에 ob_start 써보셨나요?본문
ob_start();
php , html code...
ob_end_flush();
php , html code...
ob_end_flush();
이것을 쓰면 속도가 아주 현저하게 개선된다고 하는데 적용해서 테스트 해보신 분
계신가요? 만일 쓰게 된다면 어느 부분에넣는게 가장 좋을 까요???
php 속도향상 방법...
3. 버퍼링
기본적으로 PHP의 버퍼 크기가 8K이기때문에 결과물이 크면 나누어서 보내야 하기에 I/O 시간만으로도 상당한 시간을 잡아먹게 됩니다.
하지만 버퍼링으로 결과물을 모았다가 한꺼번에 뿌려주게 되면 다른 방법들을 쓰지 않더라도 몇배의 성능 개선도 가져올 수 있습니다.
간단히 스크립 처음에 마지막에 각각 ob_start() 와 ob_end_flush() 를 추가해주기만 하면 됩니다.
그냥 ob_start() 대신 ob_start('ob_gzhandler') 로 추가할 경우 (PHP에 gzip 모듈이 올라와 있어야 합니다.)
대부분의 웹브라우져가 압축을 지원하므로 트래픽양을 줄일 수 있고 결과적으로 클라이언트의 화면에 페이지가 뜨는데 걸리는 시간이 단축됩니다.
이 방법을 쓰더라도 웹브라우져가 압축을 지원하지 않으면 압축을 하지 않고 보내므로 따로 압축을 지원하는지 안하는지 확인할 필요도 없습니다.
기본적으로 PHP의 버퍼 크기가 8K이기때문에 결과물이 크면 나누어서 보내야 하기에 I/O 시간만으로도 상당한 시간을 잡아먹게 됩니다.
하지만 버퍼링으로 결과물을 모았다가 한꺼번에 뿌려주게 되면 다른 방법들을 쓰지 않더라도 몇배의 성능 개선도 가져올 수 있습니다.
간단히 스크립 처음에 마지막에 각각 ob_start() 와 ob_end_flush() 를 추가해주기만 하면 됩니다.
그냥 ob_start() 대신 ob_start('ob_gzhandler') 로 추가할 경우 (PHP에 gzip 모듈이 올라와 있어야 합니다.)
대부분의 웹브라우져가 압축을 지원하므로 트래픽양을 줄일 수 있고 결과적으로 클라이언트의 화면에 페이지가 뜨는데 걸리는 시간이 단축됩니다.
이 방법을 쓰더라도 웹브라우져가 압축을 지원하지 않으면 압축을 하지 않고 보내므로 따로 압축을 지원하는지 안하는지 확인할 필요도 없습니다.
댓글 전체
위에 언급된 대로,
php는 스크립트 언어의 특성상 한 꺼번에 모아서 전송을 하게 됩니다.
따라서 위에 언급된대로 일반적인 코드 파싱인 경우는 이미 메모리에 로드한 상태이므로 빠른 처리를 할 수 있습니다.
그러나 한 페이지에 출력되는 결과에서 이미지가 과다하게 많거나 이미지 용량이 크거나, 또는 첨부파일 다운로드시에는 상당한 트래픽을 주게 됩니다.
언급된것과 같이 메모리에 로드한상태에서 전송을 하기 때문입니다.
다운로드시 다운받는 파일의 용량이 작은 경우는 별 문제가 없으나, 용량이 조금만 커도 서버 및 홈페이지에 많은 무리를 주게 됩니다.
따라서 일반적인 코드 파싱정도에만 사용하길 권장합니다.
* 자신이 직접 사용해보면서 자신이 사용하기 쉬우면서 강력한 기능을 할 수 있도록 하는 것이 가장 효율적이라고 볼 수 있을 것 같습니다.
php는 스크립트 언어의 특성상 한 꺼번에 모아서 전송을 하게 됩니다.
따라서 위에 언급된대로 일반적인 코드 파싱인 경우는 이미 메모리에 로드한 상태이므로 빠른 처리를 할 수 있습니다.
그러나 한 페이지에 출력되는 결과에서 이미지가 과다하게 많거나 이미지 용량이 크거나, 또는 첨부파일 다운로드시에는 상당한 트래픽을 주게 됩니다.
언급된것과 같이 메모리에 로드한상태에서 전송을 하기 때문입니다.
다운로드시 다운받는 파일의 용량이 작은 경우는 별 문제가 없으나, 용량이 조금만 커도 서버 및 홈페이지에 많은 무리를 주게 됩니다.
따라서 일반적인 코드 파싱정도에만 사용하길 권장합니다.
* 자신이 직접 사용해보면서 자신이 사용하기 쉬우면서 강력한 기능을 할 수 있도록 하는 것이 가장 효율적이라고 볼 수 있을 것 같습니다.
이해하기 쉽게 다시 설명을 해주셔서 감사합니다.
그렇다면 목록보기 정도에만 이용하는 것이 좋겠네요^^
내용보기에는 커다란 그림들이 있을 수 있으니까요...
/bbs/list.php의 가장 위와 가장 아래(skin 파일 인클루드 아래),
/bbs/view_comment.php, /bbs/board.php의 그래픽이 없는 부분에 넣었어요^^
심정적으로 조금은 빨라진 것 같기는 한데, 서버의 용량만 된다면 그래픽이 있는
부분에 써도 되겠네요?
그렇다면 목록보기 정도에만 이용하는 것이 좋겠네요^^
내용보기에는 커다란 그림들이 있을 수 있으니까요...
/bbs/list.php의 가장 위와 가장 아래(skin 파일 인클루드 아래),
/bbs/view_comment.php, /bbs/board.php의 그래픽이 없는 부분에 넣었어요^^
심정적으로 조금은 빨라진 것 같기는 한데, 서버의 용량만 된다면 그래픽이 있는
부분에 써도 되겠네요?
불당님,
최상단에
<?
ob_start("ob_gzhandler"); //출력버퍼에 압축을 사용한다.
?>
최하단에
<?
ob_end_flush();
?>
이것만 추가하면 되는 건가요?
최상단에
<?
ob_start("ob_gzhandler"); //출력버퍼에 압축을 사용한다.
?>
최하단에
<?
ob_end_flush();
?>
이것만 추가하면 되는 건가요?