ci3 에서 ORM + 라우트 변경 등등 많은 변화가 있었던 CI4 입니다

 

21년 부터 ci 4의 벤치마크가 kinsta 호스팅의 기술블로그에 나오기 시작했는데요

 

 

 

 

초당 응답속도인데 라라벨 8이 앞서고 있죠

이때는 ci4 가 나온지 얼마안되서 최적화가 덜되었나보다 하고 지나갔는데.

 

 

techempower 에서 진행하는 여러 프레임워크 벤치에서

 

3 대비 느려진 ci 4  (기능 추가로 어쩔 수없긴 합니다만)

 

해당 벤치마크팀에서 ci 저장소에 이슈를 열어서 ci 4.4 에서는 캐시 패치가 진행되었고

 

https://github.com/codeigniter4/CodeIgniter4/issues/6889

 

패치 이후 ci3 대비 ci4는 6배 느림 -> 2.5배 차이로 줄어들긴했습니다.

ci4 의 문제는 단순벤치뿐만 아니라 실서버에서도 cpu 사용량이 증가했다고 보고되었습니다.

 

https://github.com/TechEmpower/FrameworkBenchmarks/issues/8501

https://www.techempower.com/benchmarks/#section=test&runid=66d86090-b6d0-46b3-9752-5aa4913b2e33&test=composite

올해 10월 초에실행된 최신벤치마크의 링크인데요

 

라라벨보다는 여전히 느립니다.

 

                     JSON  1-query  20-query  Fortunes  Updates  Plaintext

laravel 10      77,648    37,275       4,656     22,501    1,666    81,052

codeigniter4   6,693      5,793        4,468      5,553    1,950      6,897

 

 

벤치마크 성능이 전부는 아니지만 이전 벤치마크에서 ci3 은 라라벨보다 조금 빨랐는데

ci4 가 3대비 느려졌으니 ci4 는 라라벨 보다 느리다고 볼 수 있겠네요.

 

 

프레임워크를 쓴다고 하면 라라벨이 좋겠네요

  • profile
    결론은... ci3 최고?!
  • profile ?

     농담두 ㅋㅋㅋ

    그건 네임스페이스부터 지원이 제대로 안되서요..ㄷ
    CI3 는 php 최신버전 대응이제 종료한다네요

  • ? profile

    참고로 월간이용자 64만명인, 우리나라 최대 커뮤니티 dcinside가 ci3로 만들어져 있어요.

    ci3 잘하시면 입사지원도 해봄직해요. https://www11.jobkorea.co.kr/Recruit/GI_Read/42291830

  • profile
    라이믹스는 어디쯤이에요?
  • profile

    워낙 인위적인 벤치마크여서...

     

    실제 테스트하는 내용을 보면 변수를 JSON으로 인코딩하기, DB에서 랜덤으로 row 하나 SELECT하기 등 간단한 작업들이 대부분인데, 프레임워크야 뭐 최소한으로 셋팅할 수 있다고 치고... 위의 그래프를 보면 워드프레스와 우커머스까지 있거든요? 워드프레스에게 벤치마크용 JSON 인코딩 작업만 시킨다면 그건 더이상 워드프레스가 아니게 될 텐데, 대체 무엇을 테스트했다는 것인지 무척 궁금해지는 대목입니다.

     

    그런데 라라벨이 가볍긴 해요. 불필요한 service provider를 기본으로 싹 다 주석처리할 수 있는데, 라이믹스와 비교한다면 애드온과 트리거를 죄다 꺼놓은 상태나 마찬가지거든요. 중간에 걸리적거리는 것 없이 controller까지 쭉 들어갔다가 나오는 셈이지요. 프레임워크마다 대단한 부가기능들을 자랑하지만, 그게 기본적으로 켜져 있느냐 꺼져 있느냐에 따라서도 성능상에 큰 차이를 낳을 수 있습니다.

     

    P.S. 마침 라라벨 얘기가 나왔는데, 라라벨의 Blade 템플릿 문법을 라이믹스에서 사용할 수 있도록 하는 패치를 준비했습니다. 궁금하신 분은 깃허브로~ ㅎㅎ

  • profile ?

    아 제가 보는분들 햇갈리게 적긴했네요
    서로다른 두개의 벤치마크인데요
    위에 kinsta 그래프나온건 워드 프레스 나온건 php cms 랑 프레임워크들인데

    조건은 one of its URLs with 15 concurrent users for 1,000 requests
    15동접에 1000 요청 각 cms, 프레임워크의 기본 데모페이지들이라고 하네요. - xe 예) 메인

    json query20 수치 적힌건 techempower 에서 하는 각종언어별 프레임워크 벤치마크에서
    가져왔습니다.
    ----------
    service 프로바이더는 라라벨 8 기본세팅에는 다 켜져있고요
    https://github.com/laravel/laravel/blob/8.x/config/app.php
    kinsta 벤치마크에서는 수정했는지 모르지만 수정안했다면 켜져있겠네요.

    techempower 벤치마크에는 서비스프로바이더가 DB, View, Cache 등 아주 최소한만 켜져있습니다.
    https://github.com/joanhey/FrameworkBenchmarks/blob/master/frameworks/PHP/laravel/config/app.php