PHP는 웹으로 동작하려면 벤치마크돌릴때도 Nginx나 아파치웹서버를 붙여야됨
그런데 스프링이나 루비, JS 같은건 웹애플리케이션 서버가 있어서 단독으로 가능
PHP 루멘프레임워크 벤치마크면
Nginx-루멘php <- 이 상태인데
pm2-express.js
puma-레일즈랑 붙음(puma는루비의 was)
실 서비스에서는
Nginx-puma-레일즈
Nginx-pm2-express.js
Nginx나 아파치를 붙이는 경우가 많음
벤치마크에서 좀더 불리한게 아닐까...
이건 단순 헬로월드만 실행했을 때
문자열 더하기
http://grigorov.website/blog/performance-comparison-php-vs-node-js
PHP+Nginx 랑 Node+Nginx를 비교하면 PHP가 빠름
그런데 PHP의 stateless특성상 프레임워크가 커질수록 로딩 오버헤드가 커저서
라라벨 같은건 JS쪽 프레임워크보다 느려짐
공부 좀 더 혀. 단독실행 된다. 오~~래 되었다. php-cli 나온지
php cli에 있는 php 내장웹서버는 그거 못써요 ㅈ구데기(php 5.4에 들어간거)
웹서비스는 fast cgi 를 써야지...
당근이지. 근데 express도 그냥은 구데기같아서 잘 안쓰고 puma도 구데기같다고 딴거써 (이름은 기억안나..ㅋㅋㅋㅋ) 벤치마크에서 불리하단 니말에 코멘트 달아준거심. 그냥 코어로 테스트하는건 불리할게 없단말임
코어속도는 둘째치고 앞단에 웹서버를 붙이는 오버헤드가 계산안됬다는 글인디
아하. 밑에 글이 추가되꾸나. 근데 저것도 첨부된 테스트가 문제가 있는게 php vs node 할꺼면 비교설계는 php vs node-http모듈 기준으로 nginx를 붙이면 4개 케이스로 생성해야하고 node에 express를 붙이면 8개 케이스로 확장해서 비교해야하거든. 쟤가 실험설계의 기본을 모르고 걍 생각나는대로 한거.
글고 오래가 원조 node빠지만 php비교할때 보면 노드빠들이 문제가 있는게 니말대로 프레임워크인 라라벨이나 이그나이터가지고 node랑 hello world타령을 하거릉.. 그러면 node쪽에도 똑같이 작업을 해줘야하는데 laravel for node같은게 없잖아.ㅋㅋ 그러니 완전 비교가 힘들어짐
완전똑같이는 안되겠지만 조건은 같으면 좋겠음 프레임워크VS프레임워크 , 웹서버 붙였으면 둘다 같은 웹서버 붙이고ㅇㅇ
4개 케이스는 무슨말인지 모르겠음...
나도 그런 자료있으면 좀 수집하고 싶음. 근데 애초에 비교케이스가 잘 안되는게 db를 붙인다 하면 db의 순간 컨디션 문제가 변수인걸 감안하기 이전에 node는 기동 전 불러오는 모듈이 없는데 php는 sql부터 웬갖거 다 불러온 상태에서 기동되는거라 비교가 앙대...ㅋㅋㅋ
ㅇㅇ 케이스 4개란말은 php vs node under nginx면 상호간의 성능간섭의 비교식은 php vs node(http) php+nginx vs node+nginx php vs nginx node vs nginx 로 설정되야하거든.. 이게 실험설계의 변수조작이랑 상호간섭제어 기법인데 공대에선 안배움. (이과 생물학이나 사회과학 박사 때 하는거..)
그리고 젤 중요한거.. 제일제일 중요한거다, 이딴거 아무런 소용 없는게.. 요샌 애새끼들이 저렇게 된걸 도커 안에서 돌리거든.ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그러므로 비교가 아무런!! 까진 아니겠지만 여튼 가치가 없다.ㅋㅋㅋㅋㅋ
php vs nginx, node vs nginx 두개는 nginx는 웹서버니까 프로그램을 실행할 수없어서 비교가 안되고 php vs node(http) 가 없긴한데 php 단독으로 웹서비스 안하니 빼서 php+nginx, node, node+nginx 3개 비교가 남음 그냥 php+nginx , node+nginx 인데 node단독은 곁다리로 넣은듯
노놉. 니가 가져온 자료가 "hello world"라서 그렇슴. (서버사이드 렌더링테스트가 아님) 글고 nginx도 lua script로 hello world 스트링망 출력하는 테스트가 가능함. 그런 전제 하에서는 셋다 웹서비스 서비임. (글고 애초에 셋다 웹서버얔ㅋㅋㅋ) 늙은이 지친다!!! ㅠ
저기 글 들어가보면 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8000);
밑에 자료 또 추가 했네..ㅅㅂ 왜 계속 그라노!!! 두번째로 첨부한 그림은 오히려 첫번째 그래프의 실험이 의미없다라는걸 보조해 주는 자료가 되버림. 잘봐. hello world때는 저런 첫번 째 모양이지? =>말 그대로 더미 테스르란 소리 두번째는 노드가 확 느려졌지? 근데 노드에 nginx는 가장 빠르게 나왔고. 뭐가 차인지 생각해보면 간단해. nginx에서 캐시가 동작한거야.ㅋㅋㅋ 어떻게 아느냐고? =>그러니 실험설계를 케이스로 다시 나눠서 상호간섭증명을 해야한다는거심. 근데 그게 없으니 문제라는거(테스트가 잘못된단말). 고로 php 승!! 이되는 그래프임.
근데 저기 req/sec가 초당 순간 connection 허용개수인지 특정 request별 평균처리시간의 합인지 안나와 있어 오레가 데이터를 뒤집어 읽었을 수도 있다. 그러나 그래도 실험설계가 잘못되었다는 주장이 반박되진 않는다. 왜냐면 줄 중 뭐가 빠른지만 뒤집으면 되는거거든
글보면 1쓰레드 25 커넥션 고정임 점수는 초당 요청처리수 ㅇㅇ -> 이건 첫번째꺼 노드+nginx 1 threads and 25 connections Thread Stats Avg Stdev Max +/- Stdev Latency 8.07ms 2.19ms 32.86ms 94.68% Req/Sec 3.15k 332.57 3.66k 62.83% 187866 requests in 1.00m, 33.49MB read Requests/sec: 3130.38 Transfer/sec: 571.51KB
역시 통계는 조건을 잘설정해야됨 댓글 ㄱㅅㄱㅅ
ㅇㅇ 나도 재밋었음. 프갤애들이 전부 너만 같으면 참 즐거울껀데. 열심히 들고파는 자세 보기좋다~ 열공해