나는 종종 마이크로 & 라우터를 사용하므로 벤치 마크를하기로 결정했습니다. 이 벤치 마크는 (@kenjis) php-framework-benchmark 덕분입니다. AB를 AWK로 변경하여 "프레임 워크 유형"및 기타 테이블에 추가되었습니다 ...
! 도움말 wrk https://github.com/wg/wrk의 벤치 마크
이 프로젝트는 실제 세계에서 PHP 프레임 워크의 최소 오버 헤드 (최소 부트 스트랩 비용)를 측정하려고합니다.
따라서 벤치 마크에 대한 최소 애플리케이션에는 다음이 포함되어서는 안된다고 생각합니다.
템플릿 엔진 또는 ORM/Database 라이브러리와 같은 구성 요소는이 프로젝트에서 범위를 벗어났습니다.
이것은 master 지점입니다.
--optimize-autoloader 와 같이 생산 환경에서 일반적으로 수행하는 최적화를 실행하십시오.어떤 사람들은 기본 구성을 사용하는 것이 공정하지 않다고 생각할 수도 있습니다. 그러나 프레임 워크의 기본 구성은 그것이 무엇인지에 대한 주장이라고 생각합니다. 기본 구성은 프레임 워크를 알기에 좋은 출발점입니다. 그리고 모든 프레임 워크를 최적화 할 수는 없습니다. 일부 프레임 워크는 최적화되어 있으며 일부 프레임 워크는 공정하지 않습니다. 따라서 구성 요소/구성을 제거하지 않습니다.
그러나 최적화 (사용되지 않은 구성 요소/구성 제거)로 벤치마킹에 관심이 있으시면 분기 최적화를 참조하십시오.
내 코드에 문제가있는 경우 풀 요청을 보내 주시기 바랍니다. 그러나 "Hello World!"에 대해서만 최적화하십시오. 허용되지 않습니다. 가장 빠른 구축 "Hello World!" 이 프로젝트에서는 응용 프로그램이 목표가 아닙니다.
이것들은 당신이 아닌 나의 벤치 마크입니다. (생산 동등한) 환경에서 실행하는 것이 좋습니다. (2019/01/27)
차트 표시 



Centos 7.6 내 서버
| 뼈대 | 초당 요청 | 상대적인 | 피크 메모리 | 상대적인 | 파일 | 유형 |
|---|---|---|---|---|---|---|
| 프레임 워크 | 11,742.54 | 19.7 | 0.41 | 1.0 | 1 | 프레임 워크 |
| Altorouter | 3,619.92 | 6.1 | 0.50 | 1.2 | 6 | 라우터 |
| PHP- 로터 | 3,358.57 | 5.6 | 0.52 | 1.3 | 8 | 라우터 |
| Fastroute | 2,463.59 | 4.1 | 0.55 | 1.3 | 15 | 라우터 |
| 비행 | 1,660.40 | 2.8 | 0.68 | 1.6 | 15 | 마이크로 |
| 기운 | 1,617.18 | 2.7 | 0.66 | 1.6 | 16 | 마이크로 |
| 리모네이드 | 1,439.16 | 2.4 | 1.02 | 2.5 | 6 | 마이크로 |
| Siler-1.3 | 1,397.18 | 2.3 | 0.88 | 2.1 | 22 | 마이크로 |
| Klein.php | 1,271.65 | 2.1 | 0.78 | 1.9 | 20 | 라우터 |
| Bearframework | 1,065.35 | 1.8 | 0.94 | 2.3 | 22 | 마이크로 |
| FATFREE | 1,049.13 | 1.8 | 1.50 | 3.6 | 6 | 마이크로 |
| 슬림 -3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | 마이크로 |
Macos Mojave 10.14.2 내 데스크탑
| 뼈대 | 초당 요청 | 상대적인 | 피크 메모리 | 상대적인 | 파일 | 유형 |
|---|---|---|---|---|---|---|
| 프레임 워크 | 4,573.15 | 7.2 | 0.37 | 1.0 | 1 | 프레임 워크 |
| Altorouter | 2,617.56 | 4.1 | 0.47 | 1.3 | 6 | 라우터 |
| PHP- 로터 | 2,417.23 | 3.8 | 0.47 | 1.3 | 8 | 라우터 |
| Fastroute | 1,947.44 | 3.1 | 0.51 | 1.4 | 15 | 라우터 |
| 비행 | 1,545.02 | 2.4 | 0.63 | 1.7 | 15 | 마이크로 |
| 기운 | 1,410.26 | 2.2 | 0.61 | 1.6 | 16 | 마이크로 |
| Siler-1.3 | 1,330.79 | 2.1 | 0.77 | 2.1 | 22 | 마이크로 |
| Klein.php | 1,246.66 | 2.0 | 0.74 | 2.0 | 20 | 라우터 |
| 리모네이드 | 1,193.01 | 1.9 | 1.00 | 2.7 | 6 | 마이크로 |
| Bearframework | 1,108.75 | 1.8 | 0.90 | 2.4 | 22 | 마이크로 |
| FATFREE | 1,062.73 | 1.7 | 1.44 | 3.9 | 6 | 마이크로 |
| 슬림 -3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | 마이크로 |
참고 (1) :이 벤치 마크는 wrk https://github.com/wg/wrk 성능으로 제한됩니다.
소스 코드를 http : // localhost/php-micro-router-framework-benchmark/:로 설치하십시오.
$ git clone https://github.com/dejurin/php-micro-router-framework-benchmark.git
$ cd php-micro-router-framework-benchmark
$ bash setup.sh
실행 벤치 마크 :
$ bash benchmark.sh
http : // localhost/php-micro-router-framework-benchmark/를 참조하십시오.
일부 프레임 워크를 벤치마킹하려면 다음과 같습니다.
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
아래에 /etc/sysctl.conf 에 추가했습니다
# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
sudo sysctl -p 실행하십시오.
현재 구성을 보려면 sudo sysctl -a 실행하십시오.