PHP 실행 속도 올 리 기 전 공략(하)

웹 콘 텐 츠 의 압축(고객 을 더욱 시원 하 게)은 상기 두 가지 방법 을 통 해 당신 의 PHP 응용 성능 이 이미 크게 향상 되 었 다 고 믿 습 니 다.이 제 는 다른 측면 에서 다운로드 속 도 를 고려 해 야 합 니 다.만약 당신 의 응용 이 회사 내 에서 만 달리 고 모든 고객 이 100 Mb/s 의 이 더 넷 으로 서버 에 연결 된다 면 이것 은 문제 가 되 지 않 을 것 입 니 다.그러나 만약 당신 의 고객 중 느 린 속도 의 modem 로 연결 되 어 있다 면 내용 압축 이라는 방법 을 고려 해 야 합 니 다.IETF 의 규범 에 따라 대부분의 브 라 우 저 는 gzip 내 부 를 지원 합 니 다.  용 압축.이것 은 웹 콘 텐 츠 를 고객 에 게 보 내기 전에 gzip 을 사용 하여 압축 할 수 있 음 을 의미 합 니 다.브 라 우 저 는 받 을 때 자동 으로 데 이 터 를 압축 해제 하고 사용자 에 게 원래 의 페이지 를 보 여 줍 니 다.마찬가지 로 웹 페이지 의 내용 을 압축 하 는 데 도 몇 가지 다른 방법 이 있다.mod_gzip 은 Remote 입 니 다. Communications(http://www.phpbuilder.com/columns/www.remotecommunications.com)정적 웹 페이지 를 압축 할 수 있 는 Apache 모듈 을 무료 로 제공 합 니 다.그것 은 아주 잘 작 동 합 니 다.apache 와 함께 컴 파일 하기 만 하면 됩 니 다.(또는 DSO 로 사용 합 니 다)Remotecommunications 사람들 은 mod 를 포함 하여 동적 내용 도 압축 할 수 있다 고 말 합 니 다.php, mod_perl 등.하지만 해 봤 는데 안 될 것 같 아 요.나 는 modgzip 메 일 링 리스트 에서 이 버그 는 다음 버 전에 서 수 정 될 것 입 니 다.(1.3.14.6f 버 전이 라 고 생각 합 니 다.)그러나 너 는 여전히 그것 으로 정적 내용 의 압축 을 할 수 있다.그러나 우 리 는 동태 적 인 내용 을 압축 하고 싶 기 때문에 다른 방법 을 찾 아야 한다.한 가지 방법 은 class.gzip 을 사용 하 는 것 입 니 다. encode.php(http://leknor.com/code/)PHP 스 크 립 트 의 시작 과 끝 에 이 PHP 클래스 를 호출 하면 페이지 내용 을 압축 할 수 있 습 니 다.모든 사이트 에 이러한 압축 이 필요 하 다 면 phop.ini 파일 에 있 는 autoprepend 와 autoappend 에서 이 함수 들 을 호출 합 니 다.그것 은 매우 잘 작 동 하지만,부하 가 매우 무 거 운 사이트 에 서 는 분명히 약간의 시스템 비용 을 가 져 올 것 이다.어떻게 작 동 하 는 지 자세히 알 고 싶 으 면 클래스 코드 를 볼 수 있 습 니 다.(최소한 PHP 를 컴 파일 할 때 zlib 지원 을 추가 해 야 합 니 다.)작가 의 설명 도 매우 상세 하 다.너 는 알 아야 할 모든 것 을 얻 을 수 있다.최근 에 나 도 PHP 출력 버퍼 에 관 한 글 을 보 았 다.그것 은 PHP 4.0.4 가 새로운 출력 버퍼 처리 수단 인 ob 를 내 놓 았 다 고 말한다.gzhandler,그 역할 은 위 에서 소개 한 클래스 와 같 지만 차이 점 은 phop.ini 에서 다음 과 같은 구법 을 사용 하면 된다 는 것 입 니 다:outputhandler = ob_gzhandler ;  이렇게 하면 PHP 의 출력 버퍼 기능 을 활성화 시 키 고 보 낸 모든 것 을 압축 합 니 다.특별한 이유 로 여기 서 설정 하지 않 으 려 면 필요 한 곳 에서 만 이 기본 설정 을 바 꾸 면(압축 하지 않 음)압축 이 필요 한 PHP 소스 디 렉 터 리 에서 htaccess 파일 을 수정 하면 됩 니 다.사용 하 는 구법 은 다음 과 같 습 니 다:ppvalue output_handler ob_gzhandler  ...또는 PHP 코드 에서 직접 호출 합 니 다.다음 방식 으로:obstart("ob_gzhandler");  이 출력 버퍼 처리 방법 은 매우 좋 으 며 서버 에 추가 적 인 시스템 비용 을 가 져 오지 않 습 니 다.나 는 네가 이런 방법 을 사용 할 것 을 매우 건의 한다.그것 의 변 화 는 다음 과 같은 예 로 설명 할 수 있다.만약 에 고객 이 28.8K 의 modem 을 사용한다 면 이 처 리 를 통 해 그 는 갑자기 ISDN 접속 으로 바 뀌 었 다 고 생각 할 것 이다.주의해 야 할 점 은:Netscape 커 뮤 니 케 이 터 는 그림 의 압축 을 지원 하지 않 기 때문에 표시 할 수 없습니다.따라서 고객 이 모두 인터넷 을 사용 하지 않 는 한 Explorer,그렇지 않 으 면 jpeg 와 gif 그림 압축 을 금지 해 야 합 니 다.다른 파일 의 압축 은 문제 가 없 을 것 입 니 다.하지만 테스트 를 해 보 는 것 이 좋 습 니 다.특히 브 라 우 저 는 흔 하지 않 은 플러그 인 이나 적은 사람 이 사용 하 는 브 라 우 저 를 사용 하 는 것 이 좋 습 니 다.다른 유용 한 것들...Zend 테 크 놀 로 지 스 의 온라인 상점 은 올해 1 월 24 일 에 개통 되 었 고 PHP 와 관련 된 재 미 있 는 제품 을 판매 했다.앞서 언급 한 젠 드 포함. Cache,Zend Encoder(쉽게 말 하면 PHP 코드 의 컴 파일 러 로 컴 파일 된 클래스 를 만 들 수 있 습 니 다.그러면 소스 코드 유출 을 걱정 하지 않 고 고객 에 게 판매 할 수 있 습 니 다.이러한 종류의 웹 서버 를 실행 해 야 할 때 Zend 를 사용 합 니 다. Encoder 런 타임 으로 디 코딩),Zend Ide(PHP 를 위 한 통합 개발 환경 으로 강력 한 성능 을 가지 고 있 습 니 다),그리고 PHP 개발 자 에 게 제공 하 는 지원 서비스 도 있 습 니 다.결론 은 이 글 에서 언급 한 기술 을 사용 하면 사이트 의 성능 을 크게 향상 시 킬 수 있 습 니 다.그러나 다음 과 같은 몇 가 지 를 주의 하 십시오.1.병목 은 PHP 에 없 을 수도 있 습 니 다.응용 중의 모든 대상(예 를 들 어 데이터 베이스)2.하나의 웹 서버 의 성능 이 제한 되 어 있 습 니 다.따라서 성능 이 좋 지 않 은 것 이 PHP 의 원인 이 라 고 생각 하지 마 세 요.방문 량 이 많 을 수도 있 습 니 다.서버 를 업그레이드 하거나 부하 균형 시스템 을 사용 하 는 것 을 고려 해 야 합 니 다.(돈 이 많이 들 것 입 니 다)3.내용 압축 이 중요 하지 않다 고 생각 하지 마 세 요.100 Mb/s 의 랜 에서 PHP 응용 은 성능 이 좋 을 지 모 르 지만 느 린 modem 을 사용 하 는 사용 자 를 고려 해 야 합 니 다.

좋은 웹페이지 즐겨찾기