PHP에서 비동기 + 프로세스 관리? PHP-FPM보다 15배 빠르다는 PHP-PM이라는 물건을 알았다(PHP-fpm이 아니야!)


ref : htps : // tsh. 이오/bぉg/phpp-ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅇㅇㅇㅇ

요 전날, 여러가지 조사물을 하고 있으면, ReactPHP라고 하는 이상한 것을 발견했습니다.
htps : // Rea ctphp. rg/

여기서 말하는 React는 Javascript의 React.js가 아닙니다. React 패턴? 스타일?의 React입니다. (ReactJS도 원래는 PHP의 HTML 컴포넌트 라이브러리의 XHP가 베이스인 것 같습니다만 htps : // 이 m / y 타케 / ms / 2 예 2c0 10c6 )
PHP로 비동기로 멀티 프로세스로 하는 녀석입니다. 놀랍게도 PHP로 작성되었습니다.
솔직히, 「이거 PHP로 쓸까?」라고 생각했습니다만, 재미있을 것 같았기 때문에 여러가지 조사하면 PHP-PM이라고 하는 것을 발견했습니다.

PPM - PHP Process Manager



htps : // 기주 b. 코 m/phppm/phpppm
PPM으로 약칭하는 것 같습니다.
ReactPHP를 사용해 Symfony나 Laravel이 움직이는 PHP의 middleware(PSR-15)로서 구현되고 있는 느낌입니다. Symfony의 HttpKernel의 Adapter로 작동한다는 것입니다. 그래서 nginx는 PPM의 프록시로 작동합니다.
PPM은 실행되면 8080번 포트라든지 계속 Listen 계속해 PPM이 PHP를 자식 프로세스로서 cli로 움직여 프로세스 관리를 하는 것으로, 이용하는 php.ini는 cli용의 설정이 됩니다.

따라서 사용하려면 PCNTL이 필요하며 configure 옵션 --enable-pcntl가 필요합니다.
htps //w w. php. 네 t/마누아 l/자/보오 k. pcc tl. php

Nginx + PHP-fpm의 15 배 빠른 것 같습니다.





메모리 누수는 건재



공식 페이지에서는 주된 과제에 「메모리 누수! 메모리 누수! 메모리 누수!

PHP-PM could cause big memory leaks (there’s probably some issue with restarting workers); it consumed all of my memory and crashed my PC; it happened twice,

라고 "메모리 누수 굉장하고 PC 충돌 했어"적인 것이 쓰여 있기 때문에, 여기는 주의가 필요할 것 같습니다.

요약



솔직히, "에-!? 정말 빨리 뭐야?"라는 의심을 털어낼 수 없고, PHP로 프로세스 제어한다는데 감각적인 공포를 기억합니다.
메모리 누수도 PC 크래쉬할 정도라고 이야기이고, 아직도 발전 도상일까라고 하는 느낌입니다.

하지만, 제대로 검증하지 않고 감정만으로 판단해서는 안되기 때문에, 조만간 여러가지 시험해 보려고 생각합니다.

덧붙여서, PHP로 비동기 처리라고 하면 Swoole 라는 것이 있어, 이쪽은 C++로 쓰여져 PECL 모듈이기도 하고 있기 때문에, 감각적으로는 이쪽이 안심할 수 있다.
htps : // ㅇㅇㅇㅇ

좋은 웹페이지 즐겨찾기