사용자 정의 PHP FastCGI 인터페이스?(더 빠르게?)
문제
PHP에서 자신만의 FastCGI 인터페이스를 어떻게 구축합니까?
나는 무엇과 비슷한 일을하고 싶습니다 그들은 Perl에서 하고 있어요, 그러나 PHP에서는.심지어 가능합니까?더 빠를까요?
(즉, 웹앱 프레임워크를 로드할 수 있기를 바랍니다. 한 번 그런 다음 FastCGI가 모든 요청에 대해 제공하는 메서드를 호출하도록 하세요.따라서 "기본" PHP FastCGI 설정에서 발생하는 PHP 인터프리터의 보다 일반적인 사전 로드는 아닙니다.)
건배!
(편집하다:Mongrel과 RoR도 이런 일을 하고 있지 않나요?)
좋아, 이제 이상한 다이어그램을 만들었습니다 :)
해결책
제가 착각했을 수도 있지만(늦었어요) 그냥 캐싱 같은 걸 하려고 하는 거 아닌가요?그럼에도 불구하고 FastCGI 인터페이스는 상당히 잘 정의된 것 같습니다.따라서 원하는 것은 무엇이든 매우 쉽게 수행할 수 있어야 합니다.
다른 팁
당신은 할 수 있습니다 ~ 아니다 해 ~에 PHP ~을 위한 PHP, C로 할 수 있습니다 cgi-sapi 하지만 당신은 아마도 사용하고 싶을 것입니다 APC 대신에.
PHP에 포함시키겠다고 정말로 결정했다면 이론상으로는 다음과 같이 할 수 있습니다. C에서 PHP 모듈 만들기, 그리고 다음을 위한 브리지를 형성합니다. C의 fastCGI.
그 후에는 독립형 프로그램으로 fastCGI에 액세스하는 PHP 스크립트를 실행하고 루프를 실행하고 요청을 수락할 것입니다.PHP를 "영구 가상 머신"(더 나은 용어를 찾을 수 없음)으로 사용하는 경우 fastCGI를 통해 통신합니다.
나는 여러 종속성 라이브러리 등을 다시 로드하는 것이 매우 쉽게 간과되는 성능 저하라는 데 동의합니다.그러나 PHP 개발 주기를 단순화하려는 의도적인 설계일 수도 있습니다.지속적인 환경에서 경험이 없는 사용자가 만들 전역 변수 혼란을 생각해 보십시오.대부분의 fastCGI 설정은 로드에 따라 여러 복사본/스레드를 초기화한다는 사실을 고려하세요.작은 벌레 캔이에요.각 요청에 대해 빈 새 슬레이트를 시작하면 작업이 단순화됩니다.
하지만, 솔직히...성능에 대한 우려가 있다면 fastCGI C++/node.js를 대안으로 고려해 볼 수도 있습니다....JavaScript/PHP/C++용으로 개발한 귀하의 아이디어는 확실히 가능합니다...하지만 실제로는 비용 대비 이점이 중요합니다...노력할 가치가 있나요? 등
PS:힙합을 통해 PHP 사이트를 컴파일하는 것을 고려할 수도 있습니다.