리플렉션 코드 출처 https://stackoverflow.com/questions/294582/php-5-reflection-api-performance
PHP 5.x는 230~260% 오버해드
PHP 7.x 도 ㅇㅇ
PHP 8.0은 230~250%
일단 2배는 먹고 들어감
PHP 는 요청마다 재시작하니까 DI를 지원하는 프레임워크는 매번 리플렉션하게되서
느려 질수 밖에 없음
그래서 기본 클래스가 많은 라라벨이 PHP프레임워크 중에 제일 무거운듯
PHP 생명주기 - 생명주리라고 할꺼도 없음
요청-> 프로세스 남는거 할당 ->등록된거 로딩-> 실행 -> 프로세스 종료
한방향ㅇㅇ
어쩌라고 병신아 멧돌갈면서 얼마나빠른지 벤치마킹이나 해라 ㅋㅋ
스마트폰이나 컴벤치도 많은데 뭐 ㅋㅋㅋㅋㅋ
조선시대 맷돌돌리기 대회
해당 댓글은 삭제되었습니다.
그런데 저걸 매 요청마다하잖아 다른언어프레임워크는 캐시가 되고
PHP자체가 요청->프로세스 실행->프로세스종료 반복임 PHP 는 stateless 언어임 상태없음
리플렉션은 런타임에 일어나고 PHP는 프로세스를 비우고(옛날껀 ㄹㅇ kill 함)가져다가 다시 시작하기때문에 다른데 둘곳없음 //DB나 쿠키에 두던지 실제로프레임워크 부트스트래핑을 매 요청마다함
프로세스 안죽고 계속도는게 swoole 이랑 로드러너인데 PHP 프로그램들은 기본동작인 요청->실행->종료에 맞춰져있어서 코드 코쳐야됨(컨트롤러에 들어온값이 삭제되는게 따로없음(어차피 프로세스종료되면 삭제되므로)laravel-swool 같은 패키지는 swoole 에 맞게 그런거 들어가있음
하여튼 프로세스 안죽게 하는 런타임들 swoole, 로드러너에서 돌리려면 php 코드들 싹고쳐야됨 php코드들 보면 DB커넥션 종료도 어차피 프로세스 종료되면 커넥션 자동 종료되서(이거 때문에 PHP만 가지고는 DB커넥션 유지못함) 커넥션 종료코드도 명시적으로 안적어놓은게 태반임