webman 성능
전통적인 프레임워크 요청 처리 프로세스
- nginx/apache가 요청을 수신
- nginx/apache가 요청을 php-fpm에 전달
- php-fpm이 환경을 초기화, 예를 들어 변수 목록 생성
- php-fpm이 각 확장/모듈의 RINIT 호출
- php-fpm이 디스크에서 php 파일을 읽기(사용 시 opcache를 통해 방지 가능)
- php-fpm이 어휘 분석, 구문 분석, opcode로 컴파일(사용 시 opcache를 통해 방지 가능)
- php-fpm이 opcode 실행(8, 9, 10, 11 포함)
- 프레임워크 초기화, 다양한 클래스 인스턴스화 포함, 컨테이너, 컨트롤러, 라우터, 미들웨어 등.
- 프레임워크가 데이터베이스에 연결하고 권한 검증, Redis에 연결
- 프레임워크가 비즈니스 로직을 실행
- 프레임워크가 데이터베이스, Redis 연결 종료
- php-fpm이 자원 해제, 모든 클래스 정의 및 인스턴스 파괴, 심볼 테이블 파괴 등
- php-fpm이 각 확장/모듈의 RSHUTDOWN 메소드를 순차적으로 호출
- php-fpm이 결과를 nginx/apache에 전달
- nginx/apache가 결과를 클라이언트로 반환
webman의 요청 처리 프로세스
- 프레임워크가 요청을 수신
- 프레임워크가 비즈니스 로직을 실행(opcode 바이트코드)
- 프레임워크가 결과를 클라이언트로 반환
맞습니다, nginx 리버스 프록시가 없는 경우, 프레임워크는 이 3단계만 있습니다. 이는 이미 PHP 프레임워크의 극치라고 할 수 있으며, webman의 성능은 전통적인 프레임워크의 수 배, 심지어 수십 배에 달합니다.
더 많은 참고 부하 테스트