난이도 : 중급
Martin Streicher, Editor in Chief, Linux Magazine
2007 년 4 월 03 일
PHP는 스크립팅 언어로써 웹 애플리케이션을 구현하는데 종종 사용되고 있습니다. 배우기 쉽고 시각적인 결과를 빠르게 만들어 냅니다. 하지만, PHP는 인터프리팅 되기 때문에 PHP 코드는 실행될 때마다 opcode로 파싱 및 변환됩니다. opcode 캐시는 재작업을 줄이면서, PHP 애플리케이션을 더욱 빠르게 만들어줍니다.
짧은 시간 동안 PHP는 웹 애플리케이션을 위한 대중적인 프로그래밍 언어가 되었다. 초보자도 PHP를 쉽게 설치할 수 있고 배우기도 쉽다. 보다 숙련된 개발자에게는, (V5부터) 강력한 객체 지향 기능을 제공한다. PHP 개발자 커뮤니티는 방대하고, 상당히 많은 오픈 소스와 상용 라이브러리와 툴들이 언어 기능을 확장하고 있다. PHP는 시각적인 결과를 빠르게 나타내기 때문에 많은 사람들로부터 사랑을 받는다.
Perl, Python, Ruby 등 웹 애플리케이션에 사용되는 다른 스크립팅 언어와 마찬가지로 PHP 코드는 파싱되어, opcodes (PHP 엔진을 직접 실행하는 기본 명령)로 변환되고 HTTP가 이를 요청할 때마다 실행된다. 하찮거나 작은 요구에도, 서버는 복잡한 렌더링 프로세스를 즉각적으로 완벽하게 실행한다. 제공되는 페이지의 수가 증가하면서, 해석(interpretation)-즉 재작업(rework)-은 시스템에 부담을 주게 된다. 어떤 경우, PHP 코드의 "컴파일(compilation)"은 코드를 실행하는데 드는 시간보다 더 많이 든다. 따라서, 요구가 많아질수록, 보다 동적으로 해석되고, 생성된 페이지들은 더 많은 리소스들을 요구하게 된다.
여러분의 사이트에서 프로세서와 메모리에 대해 무제한 예산이 할당되었다면, 사이트의 응답시간을 보장하기 위하여 애플리케이션 스택(하드웨어, OS, 데이터베이스, 웹 서버, PHP 코드)를 최적화할 필요가 없을 것이다. 하지만, 돈은 늘 모자라기 마련이므로, 성능 튜닝은 불가피하다. 튜닝은 부족한 시스템에 메모리를 추가하고, OS 매개변수들을 수정하고, 웹 또는 데이터베이스 서버 속도를 앞당기고, 효율성 있는 코드를 재작성 하거나 결합하는 것을 의미한다. 이러한 모든 것들이 효과를 발휘한다.
CPU 사이클을 유지하는 방법은 PHP 애플리케이션을 실행하는데 필요한 재작업 양을 줄이는 것이다. 확실히, 매번 같은 PHP 코드를 변환할 필요 없이, PHP 코드가 opcode로 변환된 후에, 원래 코드가 수정될 때까지 계속해서 공급 및 재사용 된다. 사실, 캐싱(caching)-중간 PHP 코드(opcode)를 저장 및 재사용하는 것-은 오픈 소스 Alternative PHP Cache (APC), Turck MMCache for PHP, XCache, eAccelerator, 그리고 상용 Zend Platform 등 여러 PHP 가속기들의 핵심 개념이다. 뒤에 세 가지는 바이트 코드를 캐싱 및 최적화 하면서, 더욱 빠른 속도를 제공한다.
이번 달에는 XCache를 설치, 전개, 설정하는 방법을 연구해 보자. XCache는 비교적 새로운 것으로서, 많은 사이트들은 이를 사용하여 좋은 결과를 얻고 있다. 게다가, PHP 확장으로 구현되기 때문에 구현, 설치, 설정이 쉽다. Apache와 PHP의 재컴파일이 필요하지 않다.
이 글은 XCache V1.2.0에 기반하고 있다. PHP V4.3.11에서 V4.4.4, PHP V5.1.x 에서 V5.2.x, 그리고 PHP V6의 초기 버전들을 지원하고 있다. (XCache는 PHP V5.0.x는 지원하지 않는다.) XCache는 Common Gateway Interface (CGI) 또는 명령행 PHP 인터프리터가 아닌, mod_php와 FastCGI를 사용하여 실행된다. XCache 소스 코드는 FreeBSD, Sun Solaris, Linux?, Mac OS X 등 다양한 시스템에서 구현된다. XCache는 Microsoft? Windows?에서도 구현될 수 있으며, Cygwin UNIX? 에뮬레이션 환경이나 Visual C를 사용한다. Cygwin 또는 원래의 Win32용 XCache를 구현할 수 있다. 마지막의 목표는 PHP의 공식 Win32 릴리스와의 호환성이다.
이 글에서 설명하는 데모는 Apache V2.2.3, PHP V5.2.0, XCache V1.2.0 (2006년 12월 10일 릴리스), Xcode V2.4.1 on Mac OS X V10.4.8 Tiger를 기반으로 한다. 하드웨어 플랫폼은 2-GHz Intel? Core Duo와 2 GB RAM을 갖춘 Apple MacBook이다.
|
진행하기 전에, PHP는 그 자체로 실행되고, 여러분 쉘(Shell)의
PATH에 phpize가 있는 것을 확인한다. GNU Compiler Collection (GCC) 같은 C 컴파일러가 있어야 하고, make와 m4를 포함하고 있는 개발 툴 수트가 있어야 한다. Mac OS X에서, 무료 Xcode 소프트웨어 개발 환경은 필요한 빌드 툴을 제공한다.전체 내용은 링크1에서 확인하세요
로컬용으로 VMware에 linux 설치후 apm셋팅 후 xcache를 설치해 봤습니다.
확실히 속도가 빨라지네요
[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]
게시글 목록
| 번호 | 제목 |
|---|---|
| 12201 | |
| 12200 |
기타
www 자동으로 붙이기
|
| 29244 | |
| 12196 | |
| 29243 | |
| 12188 | |
| 12184 |
Flash
Open Flash Chart
3
|
| 29231 |
HTML
타이틀 이미지 만드는 방법
11
|
| 29230 |
HTML
리코
|
| 12181 |
기타
툴팁
2
|
| 29229 | |
| 12179 | |
| 12177 | |
| 12173 |
Flash
서서히 늘어나는 리사이즈 팝업창
3
|
| 29226 | |
| 12172 |
정규표현식
자바스크립트 sort()를 이용한 숫자 정렬
|
| 25007 | |
| 12171 |
JavaScript
DOM 이용 select box 옵션추가삭제
|
| 12170 | |
| 29225 |
HTML
실수로 지운 데이터 살리기..
|
| 12167 | |
| 12166 |
JavaScript
아이디 중복체크
|
| 12157 |
기타
빈티지 효과만들기
8
|
| 12154 |
MySQL
그누보드 통합검색 방법...
2
|
| 12153 | |
| 25002 | |
| 12151 | |
| 29224 | |
| 12148 |
JavaScript
심플한 드롭다운 레이어 메뉴 (2단계 메뉴 구성)
2
|
| 29223 | |
| 12142 | |
| 29217 | |
| 12141 |
JavaScript
날짜 관련 쿼리 입니다. 한달을 요일별로 구함..
|
| 12136 | |
| 12132 | |
| 12130 |
MySQL
테이블 깨졌거나 복구 할때 간단한 팁.
1
|
| 29216 |
HTML
Table생성 스크립트 파일 뽑아내기
|
| 29215 | |
| 12126 | |
| 12124 |
JavaScript
마우스 오버시 그림 변하게 하는 스크립트 소스
1
|
| 12122 | |
| 12120 |
PHP
웹 서버를 이용한 인증
1
|
| 12111 |
JavaScript
div 사이즈 5픽셀로 하기. -_-
8
|
| 25001 | |
| 25000 | |
| 24999 | |
| 24998 | |
| 24997 | |
| 24994 | |
| 24985 | |
| 12109 | |
| 12105 | |
| 12104 | |
| 12096 | |
| 12094 | |
| 12091 | |
| 12090 |
MySQL
리눅스 mysql 에서 백그라운드 실행
|
| 12079 |
JavaScript
거리에서 찍은 인물사진 더 멋있게-
10
|
| 29211 |
HTML
낡은 포스터효과를 내어보자
3
|
| 12072 |
기타
돌아가는 글자
6
|
| 29210 |
HTML
구멍난 자바스크립트 보안
|
| 12070 | |
| 29207 |
HTML
올가미툴에 대해 배워보자
2
|
| 12067 |
JavaScript
div layer 위치 Javascript
2
|
| 12061 | |
| 29204 |
HTML
한글패치 삭제하는 방법
2
|
| 12058 | |
| 12057 | |
| 12056 |
PHP
php로 엑셀파일 만들기
|
| 24984 | |
| 12055 |
JavaScript
lampp 스타트 간단명령
|
| 12053 |
JavaScript
중앙정렬 사이트에 영향없이 오른쪽 배너 붙이기
1
|
| 12051 |
MySQL
apm
1
|
| 12050 |
MySQL
LOG
|
| 12049 | |
| 12048 |
기타
dhcp
|
| 12047 |
Linux
X 윈도우
|
| 12046 |
Linux
BOOT PROCESS
|
| 12045 |
Linux
Linux 명령어 사용방법
|
| 12044 | |
| 12043 |
JavaScript
vi
|
| 12042 |
기타
Nis/NFS
|
| 12041 |
PHP
User Management
|
| 12040 |
JavaScript
쉘
|
| 12039 |
기타
Process
|
| 12038 |
Linux
파일 시스템
|
| 12037 |
Linux
programming
|
| 12036 |
Flash
시스템 튜닝
|
| 12035 |
JavaScript
Quota
|
| 12034 |
MySQL
LOG
|
| 12033 | |
| 12032 |
Linux
메모리
|
| 12031 |
JavaScript
IPCHAINS
|
| 12028 | |
| 12026 |
Linux
linux + samba
1
|
| 12025 |
Linux
압축 그리고 백업( Backup)
|
| 12020 | |
| 12017 | |
| 12015 |
기타
이미지파일정보
1
|
| 12013 |
기타
아쿠아버튼
1
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기