FastCGI를 사용하면 PHP 앱/프레임워크를 메모리에 한 번만 로드할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/935071

문제

저는 FastCGI를 사용하여 웹 앱을 한 번 로드한 다음 FastCGI에 다음과 같은 일부 기능을 "제공"할 수 있다는 인상을 받았습니다. myHandleHTTPRequest($url), 요청이 올 때마다 호출됩니다.이렇게 하면 앱이 항상 메모리에 준비되어 있으므로 훨씬 더 나은 성능을 얻을 수 있습니다. 그렇죠?

그러나 나는 이것이 사실이 아니라는 것을 이해하기 시작했습니다.아니면 제가 착각한 걸까요?

제 생각에는 PHP가 FastCGI에 의해 로드되는 것 같습니다. 그러면 약간의 개선이 이루어지지만, 나의 요청이 있을 때마다 앱이 계속 다시 로드됩니다.

내 앱을 한 번 로드(또는 '프레임워크' 읽기)하고 싶습니다(그런 다음 약 500개 요청마다 다시 로드). 그렇게 할 수 있나요?

편집하다:이 질문은 다음과 같이 변경되었습니다. 사용자 정의 PHP FastCGI 인터페이스

도움이 되었습니까?

해결책

예, 모든 것을 잊어버리면 그렇게 할 수 있습니다. 멋진 PHP 통합 물건 (이것이 바로 General-Purpose-PHP-Interpreter-As-FastCGI를 제공하는 것입니다) 애플리케이션을 FastCGI 서버 자체로 작성하는 것입니다.

그것은 전혀 다른 주제이지만, 좀 더 자세히 살펴보고 싶을 수도 있습니다. Perl 앱이 어떻게 작동하는지 가이드를 위해.

다른 팁

fastcgi가 하는 일은 모든 요청에 ​​대해 PHP 인터프리터를 생성하는 것을 방지하는 것입니다(cgi가 하는 것처럼).mod_php와 마찬가지로 PHP 인터프리터가 메모리에 유지되므로 처리 시간이 엄청나게 절약됩니다.

성능을 향상시키기 위해 할 수 있는 일은 다음과 같습니다.

  1. 사용 APC, 또는 xcache 등은 모든 요청에 ​​대해 재컴파일을 방지하면서 모든 PHP 파일을 투명하게 사전 컴파일합니다.
  2. 캐싱.Apc 및 기타 업체는 요청 간에도 수명이 연장되는 변수를 저장하는 메커니즘을 제공합니다.이는 요청 간에 처리된 데이터를 공유하고 애플리케이션 데이터를 메모리에 유지하는 데 사용할 수 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top