Tieme은 그의 훌륭한 답변에 많은 노력을 기울 였지만 OPs 질문의 핵심은 이러한 기술이 각 기술의 작동 방식이 아니라 PHP와 어떤 관련이 있는지 생각합니다.
PHP는 명백한 클라이언트 측 HTML, CSS 및 자바 스크립트 외에 웹 개발에서 가장 많이 사용되는 언어입니다. 그러나 실시간 응용 프로그램과 관련하여 PHP에는 두 가지 주요 문제가 있습니다.
1) PHP는 매우 기본적인 CGI로 시작되었습니다. PHP는 초기 단계부터 매우 발전했지만 조금씩 진행되었습니다. PHP는 현재 임베드 가능하고 유연한 C 라이브러리가 된 시점에 이미 수백만 명의 사용자를 보유하고 있었으며, 대부분은 초기 실행 모델에 의존했기 때문에 아직 내부적으로 cgi 모델. 커맨드 라인 인터페이스조차도 PHP 라이브러리 (Linux의 libphp5.so, Windows의 php5ts.dll 등)를 마치 cgi가 여전히 GET / POST 요청을 처리하는 것처럼 호출합니다. "페이지"를 빌드 한 다음 수명주기를 마치는 것처럼 여전히 코드를 실행합니다. 결과적으로 멀티 스레드 또는 이벤트 중심 프로그래밍 (PHP 사용자 공간 내)을 거의 지원하지 않으므로 현재 실시간 다중 사용자 응용 프로그램에는 실용적이지 않습니다.
PHP는 이벤트 공간 (예 : libevent)과 스레드 (예 : pthreads)를 PHP 사용자 공간에 제공하는 확장 기능을 가지고 있지만 매우 소수의 응용 프로그램에서이를 사용합니다.
2) PHP는 여전히 가비지 수집에 중대한 문제가 있습니다. 이러한 문제가 지속적으로 개선되었지만 (위에서 설명한대로 수명주기를 끝내는 것이 가장 큰 단계 일 수 있음) 장기 실행 PHP 응용 프로그램을 만들려는 최선의 시도조차도 정기적으로 다시 시작해야합니다. 또한 실시간 응용 프로그램에는 실용적이지 않습니다.
PHP 7은 이러한 문제를 해결하기위한 훌륭한 단계이며 실시간 응용 프로그램을위한 플랫폼으로 매우 유망한 것 같습니다.