2009-11-21 4 views
8

필자는 수년 동안 PHP를 작성해 왔으며 모든 프레임 워크를 햇빛 아래에서 사용했지만 한 가지 사실은 항상 나를 괴롭혔습니다 ... 누군가가 내 서버에 알릴 때마다 모든 피할 수있는 것을 해석하고 실행해야한다는 것입니다. 페이지가 게재되기를 원합니다.PHP의 속도가 심각합니까?

저는 FastCGI, Zend Job Queue (및 비슷한 기능을하는 symfony 플러그인 - 백그라운드 프로세스를 실행하는 System_Daemon 클래스를 구현하는 내 DB 기반 솔루션) 캐싱을 실험 해봤습니다. 그 모든 것들을 사용하여 상당히 빠르게 내 애플 리케이션을 만들 수 있었다 ...하지만 내 설정 파일, 시스템/환경 검사 기능, 그리고 오직 물건을로드해야합니다 모든 것들이 정신 블록을 넘을 수 없다 ...로드 누군가가 내 페이지를 친 때마다.

그래서, 내 산책은 RAM에 PHP의 특정 측면, 해당 페이지가 요청 될 때 그래서 내 모든 settings.yml 파일을로드하기위한 몇 가지 방법/기술이 있는가 다음 Q--

로 연결 시스템 체크, 프레임 워크 파일, 캐쉬 된 페이지 등은 심지어 HD에 손을 대지도 않고 메모리에서 직접로드 할 수 있습니다 ... 또는 프로그램을 초기화하기 위해 하루에 50,000 번 동일한로드 메커니즘을 거칠 필요가 있습니까?

PHP에 아무것도없는 경우 ... 진정한 init-once 앱을 허용하기 위해 이러한 방식으로 컴파일 할 수있는 다른 '웹'언어가 있습니까?

답변

9

데이터 캐싱에 대해 이야기하고 있다면 memcached을 시도해야한다고 생각합니다. 제 생각에는 PHP가 mod_php 같은 아파치를 사용한다면 컴파일 된 PHP 페이지를 캐싱하는데 상당히 능숙하다고 생각합니다.

+0

페이 스북 (Facebook)에서 캐싱을 고정하기 위해 memcached도 사용합니다. –

2

램 디스크에 전체 페이지 캐시를 만들고 거기에서 페이지를 제공하도록 웹 서버를 만드십시오. 이것은 워드 프레스 수퍼 캐시 플러그인이 사용하는 방법이며 웹 사이트가 전체 페이지 캐싱에 적합한 경우 효과적입니다. PHP 인터프리터를 호출하지 않는 것입니다.

로그인 한 사용자 (열린 세션 있음)의 경우 요청을 PHP 엔진으로 리디렉션하는 다시 쓰기 조건을 만들 수 있습니다.

또한 항상 APC와 같은 opcode 캐시를 사용하고 설정 파일 캐싱에 사용하십시오 (memcache도 좋습니다).

1

응용 프로그램 서버와 같은 JVM/Tomcat을 요청하는 경우 대답은 아니오입니다. 내 지식으로는 PHP와 같은 것이 없다. PHP는 비공유 아키텍처를 사용하므로 모든 요청에 ​​대해 모든 것이 설정됩니다. 그러나 실제로 이것은 PHP를 꽤 잘 만들어줍니다.

앱 속도를 높이려면 memcachedcode accelerator을 사용해보세요. 완벽한 패키지를 얻으려면 Zend Server을 조사하십시오.

0

마지막 질문에 관해서는, 적어도 파이썬과 루비 웹 프레임 워크의 대부분은 그렇게 작동한다고 생각합니다.

Ruby 웹 응용 프로그램은 현재 서버 프로세스마다 한 번만 초기화되도록 구성되어 있습니다. 요청이 들어 오면 서버 (예 : Apache)가 백그라운드에서 실행중인 웹 응용 프로그램 (Rack 인터페이스 이상)으로 전달합니다.

이것은 웹 프레임 워크 Rack을 기반으로하는 방법입니다. Ruby on Rails의 이전 버전은 웹 서버와 통신하기 위해 다른 인터페이스를 사용했지만 비슷했습니다.

+0

PHP에 해당하는 항목이 있습니까? –

8

APC (Alternative PHP Cache)을 살펴보면 컴파일 된 파일 (PHP Opcode)의 캐시를 유지하고 apc_fetch, apc_store를 사용하여 임의의 변수를 메모리에 저장할 수 있습니다.

설치가 매우 간단하며 실제로 성능이 향상됩니다.

+0

apc가 opcode 캐시 이상이기 때문에 – gpilotino

+0

또한 php 6에 내장 될 예정입니다. –

0

나는 Facebook Engineering 페이지 (http://www.facebook.com/notes.php?id=9445547199)에 주목할 것입니다. 그리고 매번 그들은 물건을 빠르게/최적화/확장하는 방법에 관한 글을 올립니다. 나는 그들이 PHP의 사용이 슈퍼 인상적이라고 생각.