목차
주류 PHP 프레임워크 성능에 대한 비공인 테스트
性能测试
结果说明
开始测试
优化框架
结论
결과 설명
최적화 프레임워크
백엔드 개발 PHP 튜토리얼 빨리 살펴보세요! 주류 PHP 프레임워크 성능에 대한 비공인 테스트

빨리 살펴보세요! 주류 PHP 프레임워크 성능에 대한 비공인 테스트

Jul 29, 2020 pm 01:20 PM
PHP 프레임워크

주류 PHP 프레임워크 성능에 대한 비공인 테스트

PHP 개발자이자 스타트업 팀의 기술 개발자로서 개발 프레임워크를 선택하는 것은 매우 어려운 일입니다.

ThinkPHP를 사용하면 훈련기관을 갓 졸업한 개발자를 영입해서 시작할 수 있지만 성능과 포스트코드를 분리하는 것은 골치 아픈 일입니다. 그러나 많은 전문가들이 이미 길을 닦았으므로 많은 타사 기능을 직접 작성할 필요는 없습니다. ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情。不过很多第三方功能不需要自己写,众多大牛已经给铺好路了。

Laravel的话,传说写起来很爽扩展性也够,但是学习成本有点高,总不能给初级开发者半个月的时间去学习框架吧。而且据说江湖人士透漏,Laravel性能不怎么样,文档也并不是特别丰富。

Yii的话,语法有点啰嗦,前后端代码分离有点小麻烦,不过性能是非常好的,而且已经有众多国内大公司在使用了,出现意外可以快速的找到大牛答疑解惑。

不如做个简单的性能评测,选个性能出色的总不会出错

性能测试

  • 测试时间: 2016年05月06日

  • 测试工具: siege (因为MAC系统的ab总是会出现 pr_socket_recv: Connection reset by peer (54) 的错误,所以选择了siege)

  • 测试机器: MacPro Core i5 处理器/8GB内存/256GB SSD闪存

  • 测试环境: Apache PHP5.6

  • 框架版本: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

  • 测试原则: 每次测试循环5次,取中等数据

补充说明:所有项目都是让在子目录中

结果说明

Transactions:                2119 hits  处理请求总数量
Availability:               96.85 %  可用性
Elapsed time:                9.74 secs  运行时间
Data transferred:            1.31 MB 数据传输量
Response time:                0.60 secs 响应时间
Transaction rate:          217.56 trans/sec 每秒处理效率
Throughput:                0.13 MB/sec 每秒处理数据
Concurrency:              130.28 并发
Successful transactions:        2162 成功的请求
Failed transactions:              69 失败的请求
Longest transaction:            2.85 最长的单个请求
Shortest transaction:            0.01 最短的单个请求
로그인 후 복사

开始测试

增加一个控制器,并在控制器中输入10000次HelloWorld

并发50循环10次:

首先向我们走来的是ThinkPHP,看上去还行

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:                2.81 secs
Data transferred:           52.45 MB
Response time:                0.26 secs
Transaction rate:          177.94 trans/sec
Throughput:               18.67 MB/sec
Concurrency:               47.10
Successful transactions:         500
Failed transactions:               0
Longest transaction:            0.48
Shortest transaction:            0.03
로그인 후 복사

然后是Laravle,嗯,略微有些失望

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:               13.33 secs
Data transferred:           52.45 MB
Response time:                1.27 secs
Transaction rate:           37.51 trans/sec
Throughput:                3.93 MB/sec
Concurrency:               47.55
Successful transactions:         500
Failed transactions:               0
Longest transaction:            3.64
Shortest transaction:            0.07
로그인 후 복사

最后赛前比较看好的Yii

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:                4.84 secs
Data transferred:           52.45 MB
Response time:                0.46 secs
Transaction rate:          103.31 trans/sec
Throughput:               10.84 MB/sec
Concurrency:               47.65
Successful transactions:         500
Failed transactions:               0
Longest transaction:            0.88
Shortest transaction:            0.04
로그인 후 복사

并发200循环10次:

首先是ThinkPHP

Transactions:                1977 hits
Availability:               98.85 %
Elapsed time:               10.03 secs
Data transferred:          207.40 MB
Response time:                0.95 secs
Transaction rate:          197.11 trans/sec
Throughput:               20.68 MB/sec
Concurrency:              187.68
Successful transactions:        1977
Failed transactions:              23
Longest transaction:            1.22
Shortest transaction:            0.02
로그인 후 복사

然后是Laravel

Transactions:                1890 hits
Availability:               94.50 %
Elapsed time:               51.85 secs
Data transferred:          198.27 MB
Response time:                4.88 secs
Transaction rate:           36.45 trans/sec
Throughput:                3.82 MB/sec
Concurrency:              178.00
Successful transactions:        1890
Failed transactions:             110
Longest transaction:           26.01
Shortest transaction:            0.07
로그인 후 복사

最后是Yii

Transactions:                1996 hits
Availability:               99.80 %
Elapsed time:               18.95 secs
Data transferred:          209.39 MB
Response time:                1.79 secs
Transaction rate:          105.33 trans/sec
Throughput:               11.05 MB/sec
Concurrency:              188.57
Successful transactions:        1996
Failed transactions:               4
Longest transaction:            3.29
Shortest transaction:            0.10
로그인 후 복사

没想到在没有优化的情况下,ThinkPHP的速度是最快的,Yii略微多一些,Laravel步履蹒跚的跑完了测试。结果是有些出人意料的,不过上述的测试只代表了开发环境,下面会对框架进行优化,模拟线上环境。

优化框架

ThinkPHP:

APP_DEBUG改为false
로그인 후 복사

Laravel:

APP_DEBUG改为false
php artisan route:cache
php artisan optimize
php artisan config:cache
composer dumpautoload -o
로그인 후 복사

Yii:

YII_DEBUG改为false
composer dumpautoload -o
로그인 후 복사

并发200循环10次:

ThinkPHP

Transactions:                1655 hits
Availability:               82.75 %
Elapsed time:                8.21 secs
Data transferred:          173.62 MB
Response time:                0.69 secs
Transaction rate:          201.58 trans/sec
Throughput:               21.15 MB/sec
Concurrency:              139.29
Successful transactions:        1655
Failed transactions:             345
Longest transaction:            7.83
Shortest transaction:            0.00
로그인 후 복사

Laravel:

Transactions:                1520 hits
Availability:               76.00 %
Elapsed time:               34.95 secs
Data transferred:          159.45 MB
Response time:                3.15 secs
Transaction rate:           43.49 trans/sec
Throughput:                4.56 MB/sec
Concurrency:              136.84
Successful transactions:        1520
Failed transactions:             480
Longest transaction:           19.18
Shortest transaction:            0.00
로그인 후 복사

Yii:

Transactions:                1704 hits
Availability:               85.20 %
Elapsed time:               15.16 secs
Data transferred:          178.76 MB
Response time:                1.46 secs
Transaction rate:          112.40 trans/sec
Throughput:               11.79 MB/sec
Concurrency:              164.21
Successful transactions:        1704
Failed transactions:             296
Longest transaction:            9.04
Shortest transaction:            0.00
로그인 후 복사

比较奇怪的一点,当框架关掉调试模式后都出现了较多失败的情况。不过明显的看到,Laravel进行简单的优化后,性能大大的提升了,但还是低于其他两个框架。

结论

在测试的过程中,其他我的心情是沮丧的,感觉自己的三观世界已经崩塌了,崩塌至渣。

  • ThinkPHP的性能比Yii高出一倍,比Laravel高出近四倍

  • Yii的性能比较中庸,但是在测试中会明显发现请求失败的情况比其他两个框架要少

  • Laravel依旧优雅,不过性能堪忧,用网友的话形容比较好 学之者生用之者死

    Laravel을 사용하면 쓰기가 매우 편하고 확장성이 충분하다고 하는데, 후배 개발자들에게 반달의 학습 시간을 줄 수는 없는 수준입니다. 프레임워크. 그리고 Laravel의 성능이 그다지 좋지 않고, 문서도 특별히 풍부하지 않다는 사실이 전 세계 사람들에게 공개되었다고 합니다.
Yii를 사용하면 문법도 좀 번거롭고 프론트엔드와 백엔드 코드 분리도 조금 번거롭지만 성능은 매우 좋아서 이미 사용하고 있는 부분입니다 국내의 많은 대기업에서는 사고가 나면 신속하게 큰 사고를 찾아내며 궁금증을 해결해줍니다.

간단한 성능 평가를 하는게 더 좋고, 성능이 뛰어난 것을 선택하면 틀릴 일이 없습니다

성능 테스트

테스트 시간: 05월 6일 2016🎜 🎜
  • 🎜테스트 도구: siege (MAC 시스템의 ab는 항상 pr_socket_recv: Connection Reset by Peer (54)를 표시하기 때문입니다. 틀려서 siege)를 선택했습니다.🎜🎜
  • 🎜테스트 기기: MacPro Core i5 프로세서/8GB 메모리/256GB SSD 플래시 메모리🎜🎜
  • 🎜테스트 환경: Apache PHP5.6🎜🎜
  • 🎜프레임워크 버전: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5🎜🎜
  • 🎜테스트 원칙: 각 테스트 주기 5 시간이 지나면 중간 정도의 데이터를 가져가세요🎜🎜🎜🎜추가 설명: 모든 항목이 하위 디렉터리에 있습니다🎜

    결과 설명

    Transactions:                1672 hits
    Availability:               83.60 %
    Elapsed time:                6.18 secs
    Data transferred:          175.40 MB
    Response time:                0.57 secs
    Transaction rate:          270.55 trans/sec
    Throughput:               28.38 MB/sec
    Concurrency:              153.16
    Successful transactions:        1672
    Failed transactions:             328
    Longest transaction:            4.57
    Shortest transaction:            0.01
    로그인 후 복사

    테스트 시작🎜 🎜컨트롤러를 추가하고 컨트롤러에서 HelloWorld를 10,000번 입력🎜🎜동시 50개 루프 10번: 🎜🎜우리에게 가장 먼저 온 것은 ThinkPHP였는데 괜찮아 보였습니다. 🎜rrreee🎜그 다음은 Laravle입니다. , 좀 실망스럽네요🎜rrreee🎜결국 경기 전 더 유망했던 Yii🎜rrreee🎜가 200번씩 10번을 동시에 반복했습니다: 🎜🎜첫 번째는 ThinkPHP🎜rrreee🎜그 다음은 Laravel🎜rrreee 🎜결국은 Yii🎜rrreee였습니다 🎜의외로 최적화 없이는 ThinkPHP가 가장 빨랐고 Yii는 조금 더 빨랐으며 Laravel은 불안정한 속도로 테스트를 마쳤습니다. 결과는 다소 예상치 못한 결과이지만 위 테스트는 개발 환경만을 나타냅니다. 아래에서는 프레임워크를 최적화하여 온라인 환경을 시뮬레이션합니다. 🎜

    최적화 프레임워크

    🎜ThinkPHP: 🎜rrreee🎜Laravel: 🎜rrreee🎜Yii: 🎜rrreee🎜동시성 200회 루프 10회: 🎜🎜ThinkPHP🎜rrreee🎜Laravel: 🎜 rrreee🎜Yii:🎜rrreee🎜이상한 점은 프레임워크가 디버깅 모드를 끄면 실패가 더 많다는 것입니다. 그러나 간단한 최적화 이후 Laravel의 성능이 크게 향상되었음은 분명하지만, 여전히 다른 두 프레임워크에 비하면 낮은 수준입니다. 🎜

    결론🎜🎜시험을 치르는 동안 저는 우울함을 느꼈고, 제 세계관이 무너질 정도로 무너졌다는 느낌을 받았습니다. 🎜
    • 🎜ThinkPHP의 성능은 Yii에 비해 2배, Laravel에 비해 거의 4배 높습니다.🎜🎜
    • 🎜Yii의 성능은 비교적 평균적이지만 테스트에서는 요청 실패 상황이 다른 상황보다 프레임워크가 두 개 적습니다🎜🎜
    • 🎜Laravel은 여전히 ​​우아하지만 성능이 걱정됩니다. 네티즌 라는 말로 표현하는 것이 좋습니다. 라이브로 배우는 사람은 죽습니다. 🎜🎜🎜🎜Finally🎜🎜내 프로젝트 드디어 자체 제작 프레임워크를 사용하여 개발을 하게 되었습니다. Composer의 힘으로 개발 과정이 매우 순조롭게 진행되었습니다. 드디어 자체 제작 프레임워크의 데이터가 실행되었습니다. 200개의 동시성 및 10개의 주기가 첨부되어 있습니다. 프레임워크는 오픈 소스이지만 업데이트로 인해 바쁘습니다. github에서 PPPHP를 검색하고 저와 함께 프레임워크를 구축해 보세요. 🎜rreee🎜

    위 내용은 빨리 살펴보세요! 주류 PHP 프레임워크 성능에 대한 비공인 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

  • 본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    PHP 프레임워크의 장점과 단점 비교: 어느 것이 더 좋나요? PHP 프레임워크의 장점과 단점 비교: 어느 것이 더 좋나요? Jun 04, 2024 pm 03:36 PM

    PHP 프레임워크의 선택은 프로젝트 요구 사항과 개발자 기술에 따라 다릅니다. Laravel: 기능이 풍부하고 커뮤니티가 활발하지만 학습 곡선이 가파르고 성능 오버헤드가 높습니다. CodeIgniter: 가볍고 확장하기 쉽지만 기능이 제한되고 문서가 적습니다. Symfony: 모듈식이며 강력한 커뮤니티이지만 복잡한 성능 문제가 있습니다. ZendFramework: 엔터프라이즈급이며 안정적이고 신뢰할 수 있지만 라이센스 비용이 크고 부피가 큽니다. 슬림(Slim): 마이크로 프레임워크로 빠르지만 기능이 제한되고 학습 곡선이 가파릅니다.

    다양한 개발 환경에서 PHP 프레임워크의 성능 차이 다양한 개발 환경에서 PHP 프레임워크의 성능 차이 Jun 05, 2024 pm 08:57 PM

    다양한 개발 환경에서는 PHP 프레임워크의 성능에 차이가 있습니다. 개발 환경(예: 로컬 Apache 서버)은 낮은 로컬 서버 성능 및 디버깅 도구와 같은 요인으로 인해 프레임워크 성능이 저하됩니다. 대조적으로, 더 강력한 서버와 최적화된 구성을 갖춘 프로덕션 환경(예: 완전한 기능을 갖춘 프로덕션 서버)은 프레임워크에 훨씬 더 나은 성능을 제공합니다.

    PHP 프레임워크 및 마이크로서비스: 클라우드 네이티브 배포 및 컨테이너화 PHP 프레임워크 및 마이크로서비스: 클라우드 네이티브 배포 및 컨테이너화 Jun 04, 2024 pm 12:48 PM

    PHP 프레임워크와 마이크로서비스 결합의 이점: 확장성: 애플리케이션을 쉽게 확장하고, 새로운 기능을 추가하거나 더 많은 로드를 처리합니다. 유연성: 마이크로서비스는 독립적으로 배포 및 유지 관리되므로 변경 및 업데이트가 더 쉬워집니다. 고가용성: 하나의 마이크로서비스 장애가 다른 부분에 영향을 주지 않아 더 높은 가용성을 보장합니다. 실제 사례: Laravel 및 Kubernetes를 사용하여 마이크로서비스 배포 단계: Laravel 프로젝트를 생성합니다. 마이크로서비스 컨트롤러를 정의합니다. Dockerfile을 만듭니다. Kubernetes 매니페스트를 만듭니다. 마이크로서비스를 배포합니다. 마이크로서비스를 테스트합니다.

    마이크로서비스 아키텍처를 위한 최고의 PHP 프레임워크: 성능 및 효율성 마이크로서비스 아키텍처를 위한 최고의 PHP 프레임워크: 성능 및 효율성 Jun 03, 2024 pm 08:27 PM

    최고의 PHP 마이크로서비스 프레임워크: Symfony: 유연성, 성능 및 확장성으로 마이크로서비스 구축을 위한 구성 요소 제품군을 제공합니다. Laravel: 효율성과 테스트 가능성에 중점을 두고 깔끔한 API 인터페이스를 제공하며 상태 비저장 서비스를 지원합니다. 슬림: 미니멀하고 빠르며 고성능 API 구축에 적합한 간단한 라우팅 시스템과 옵션 미드바디 빌더를 제공합니다.

    DevOps와 PHP 프레임워크의 통합: 자동화 및 민첩성의 미래 DevOps와 PHP 프레임워크의 통합: 자동화 및 민첩성의 미래 Jun 05, 2024 pm 09:18 PM

    PHP 프레임워크를 DevOps와 통합하면 효율성과 민첩성이 향상될 수 있습니다. 지루한 작업을 자동화하고, 직원이 전략적 작업에 집중할 수 있도록 하며, 릴리스 주기를 단축하고, 출시 기간을 단축하고, 코드 품질을 개선하고, 오류를 줄이고, 부서 간 팀 협업을 강화하고, 분석을 세분화합니다. 개발 및 운영 사일로

    PHP 프레임워크에서 인공지능의 응용 가능성 PHP 프레임워크에서 인공지능의 응용 가능성 Jun 03, 2024 am 11:01 AM

    PHP 프레임워크에서 인공 지능(AI)의 응용 가능성은 다음과 같습니다. 자연어 처리(NLP): 텍스트 분석, 감정 식별 및 요약 생성. 이미지 처리: 이미지 객체 식별, 얼굴 감지 및 크기 조정에 사용됩니다. 기계 학습: 예측, 분류 및 클러스터링을 위한 것입니다. 실제 사례: 챗봇, 개인화된 추천, 사기 탐지. AI를 통합하면 웹사이트나 애플리케이션 기능이 향상되어 강력한 새 기능을 제공할 수 있습니다.

    신속한 개발을 위해 가장 포괄적인 확장 라이브러리를 제공하는 PHP 프레임워크는 무엇입니까? 신속한 개발을 위해 가장 포괄적인 확장 라이브러리를 제공하는 PHP 프레임워크는 무엇입니까? Jun 04, 2024 am 10:45 AM

    PHP 프레임워크 확장 라이브러리는 선택할 수 있는 네 가지 프레임워크를 제공합니다. Laravel: 광범위한 생태계와 타사 패키지로 잘 알려져 있으며 인증, 라우팅, 검증 및 기타 확장 기능을 제공합니다. Symfony: 인증, 양식 등과 같은 영역을 포괄하는 재사용 가능한 "번들"을 통해 고도로 모듈화된 기능을 확장합니다. CodeIgniter: 가볍고 고성능이며 데이터베이스 연결 및 양식 유효성 검사와 같은 실용적인 확장 기능을 제공합니다. ZendFramework: 인증, 데이터베이스 연결, RESTfulAPI 지원 등과 같은 확장 기능을 갖춘 강력한 엔터프라이즈급 기능입니다.

    PHP 프레임워크 및 인공 지능: 개발자 가이드 PHP 프레임워크 및 인공 지능: 개발자 가이드 Jun 04, 2024 pm 12:47 PM

    PHP 프레임워크를 사용하여 인공 지능(AI)을 통합하여 웹 애플리케이션에서 AI 통합을 단순화합니다. 권장 프레임워크: Laravel: 가볍고 효율적이며 강력합니다. CodeIgniter: 간단하고 사용하기 쉬우며 소규모 애플리케이션에 적합합니다. ZendFramework: 완전한 기능을 갖춘 엔터프라이즈급 프레임워크입니다. AI 통합 방법: 머신러닝 모델: 특정 작업을 수행합니다. AIAPI: 사전 구축된 기능을 제공합니다. AI 라이브러리: AI 작업을 처리합니다.

    See all articles