PHP 7 퍼포먼스
PHP 7과 Wordpress 서버의 이전 버전을 비교하는 벤치마크를 재현해 보았습니다.http://talks.php.net/oz15 #/wpbench
구성은 거의 같습니다.서버에는 i7, SSD, 16GB RAM, 데비안이 탑재되어 있습니다.서버 소프트웨어는 nginx.놀랍게도 나의 결과는 위에 링크된 것과 많이 다르다.
내 테스트에서 Saught(https://www.joedog.org/siege-home/)는 다음 출력을 제공합니다.
PHP 7.0.0의 경우RC1:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 131.61 secs
Data transferred: 95.77 MB
Response time: 0.75 secs
Transaction rate: 75.98 trans/sec
Throughput: 0.73 MB/sec
Concurrency: 56.98
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 1.01
Shortest transaction: 0.04
PHP 5.6.12의 경우:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 63.41 secs
Data transferred: 95.77 MB
Response time: 0.03 secs
Transaction rate: 157.70 trans/sec
Throughput: 1.51 MB/sec
Concurrency: 4.45
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 0.63
Shortest transaction: 0.01
트랜잭션 레이트를 보면 PHP 5가 PHP 7보다 2배 정도 빠르다는 것을 알 수 있습니다.믿을 수 없습니다.
또 다른 흥미로운 사실은 이 벤치마크(http://www.php-benchmark-script.com/)를 실행하면 PHP 7이 PHP 5보다 약 3배 빨라진다는 것입니다(물론 Wordpress도 테스트한 서버와 동일).측정된 결과는 다음과 같습니다.
- PHP 7.0.0RC1 | PHP 5.5.28
- 연산: 0.201 | 0.683
- 문자열 조작: 0.271 | 0.77
- 루프: 0.166 | 0.486
- 기타의 경우: 0.12 | 0.295
phpinfo() 파일을 업로드했습니다.
- PHP 버전 7.0.0RC1: http://simsso.de/downloads/stackoverflow/php7.html
- PHP 버전 5.6.12-0+param8u1: http://simsso.de/downloads/stackoverflow/php5.html
워드프레스 테스트에서 PHP 7이 왜 그렇게 느린지 아세요?
opcache를 활성화하면 PHP 7은 실제로 PHP 5보다 2배 더 빠릅니다.Mjh씨 힌트 고마워요!
무작위로 채워진 WordPress Server에서 다음과 같이 측정했습니다.
이제 Socket은 PHP 7.0.0에 대해 다음을 출력합니다.RC1:
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 62.14 secs
Data transferred: 604.20 MB
Response time: 0.02 secs
Transaction rate: 160.93 trans/sec
Throughput: 9.72 MB/sec
Concurrency: 3.77
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 0.41
Shortest transaction: 0.01
PHP 5.6.12:
siege -c100 -r100 http://10.22.255.133/wordpress/
** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.
Transactions: 10000 hits
Availability: 100.00 %
Elapsed time: 119.98 secs
Data transferred: 604.20 MB
Response time: 0.60 secs
Transaction rate: 83.35 trans/sec
Throughput: 5.04 MB/sec
Concurrency: 49.86
Successful transactions: 10000
Failed transactions: 0
Longest transaction: 4.06
Shortest transaction: 0.04
의 phpinfo
이 투고했습니다.opcache
PHP 7은 활성화되지 않았지만 PHP 5는 활성화되지 않았습니다.그것만으로도 큰 차이가 날 수 있다.
현재 CLI 측면에서도 같은 놀라운 결과를 얻었습니다.
이전 프로젝트 중 하나는 PHING 빌드를 사용합니다.PHP 5.3과 PHP 5.6으로 동작하고 있었습니다.PHP 7을 사용해 본 결과, 큰 차이를 알 수 있었습니다.그래서 대본의 실행 시간을 재기로 했어요.
참고로 빌드 중에 수천 개의 파일이 처리되는 실제 프로젝트입니다.
PHP 5.3.29를 사용한 빌드: 3분 44초 경과.
PHP 7.2.11을 사용한 빌드: 11분 41초 경과.
CLI에서 opcache가 활성화되지 않은 것을 알 수 있었습니다.opcache를 사용한 결과는 다음과 같습니다.
PHP 7.2.11 + opcache를 사용하여 빌드: 12분 18초 경과.
네, 더 나빠졌습니다.
참고:
$ php --info |grep opcache
opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => 1 => 1
opcache.file_cache_only => 0 => 0
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.inherited_hack => On => On
opcache.interned_strings_buffer => 8 => 8
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 10000 => 10000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0x7FFFBFFF => 0x7FFFBFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On
덧붙여서, PHP 5에서 PHP 7로 전환했을 때, apache의 prod에 큰 차이가 있는 것을 깨닫지 못했습니다.온라인에서 볼 수 있는 모든 bechmarks는 무시하지만, 그 차이는 결코 명확하지 않습니다.
그 프로젝트에서는 PHP 5 버전을 고수할 것입니다.
언급URL : https://stackoverflow.com/questions/32328373/php-7-performance
'programing' 카테고리의 다른 글
react-intl vs react-i18(React용)JS 국제화(i18n) (0) | 2023.03.16 |
---|---|
레스트렛, CLAP, Ajax 및 청크 타임아웃 (0) | 2023.03.16 |
리액트 링크 vs 태그 및 화살표 기능 (0) | 2023.03.16 |
UI 뷰가 아닌 맨 위로 스크롤하는 각도 UI 라우터 (0) | 2023.03.16 |
JSON Jackson은 다른 키를 같은 필드로 해석합니다. (0) | 2023.03.16 |