>  기사  >  백엔드 개발  >  5가지 php7 성능 최적화 팁 요약

5가지 php7 성능 최적화 팁 요약

伊谢尔伦
伊谢尔伦원래의
2017-06-27 10:01:221964검색

PHP7이 출시되었습니다. 10년 만에 최대 규모의 PHP 버전 업그레이드이자 최대 성능 업그레이드인 PHP7은 여러 테스트에서 확실한 성능 향상을 보여주었습니다. 그러나 최대 성능을 발휘하기 위해서는 아직 몇 가지 개선 사항이 남아 있습니다.

1. Opcache

Opcache가 활성화되지 않은 경우에도 PHP7이 PHP-5.6보다 빠르므로 이전 테스트 기간에 발생했습니다. Opcache를 활성화한 적이 없습니다. 추가:

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"

2. 새로운 컴파일러를 사용하세요.

php.ini

구성 파일에는 GCC 4.8 이상이 권장됩니다

. GCC 4.8 이상에서는 opline 및 Execution_data 지원을 위한 전역 등록이 활성화되어 약 5%의 성능 향상을 가져옵니다(Wordpres의 QPS 관점에서 측정)

실제로 GCC 4.8 이전 버전도 이를 지원하지만 우리는 다음과 같은 사실을 발견했습니다. 지원되는 버그가 있으므로 이 기능을 활성화하려면 버전 4.8 이상이어야 합니다.

3. HugePage

내 이전 기사에서도 소개했습니다: PHP7을 더 빠르게 만들기 위한 Hugepage, 먼저 시스템에서 HugePages를 활성화하고 그런 다음 Opcache의 huge_code_pages를 활성화합니다.

CentOS 6.5를 예로 들어 다음을 전달합니다.

$sudo sysctl vm.nr_hugepages=512

512개의 예약된 대용량 페이지 메모리를 할당합니다.

$ cat /proc/meminfo | grep Huge
AnonHugePages: 106496 kB
HugePages_Total: 512
HugePages_Free: 504
HugePages_Rsvd: 27
HugePages_Surp: 0
Hugepagesize: 2048 kB

그런 다음 php.ini에서 추가:

 opcache.huge_code_pages=1

In 이런 방식으로 PHP는 큰 메모리 페이지를 사용하여 자체 텍스트 세그먼트와 큰 메모리 할당을 저장하여 TLB 누락을 줄이고 성능을 향상시킵니다.

4. Opcache file 캐시

Opcache 파일 캐시 활성화(실험적) 이를 통해 Opcache가 opcodecache를 외부 파일에 캐시하도록 할 수 있습니다. 일부 스크립트의 경우 성능이 크게 향상됩니다.
php.ini에 추가:

opcache.file_cache=/tmp

이러한 방식으로 PHP는 일부 Opcode 바이너리 내보내기를 캐시합니다. PHP라이프 사이클.

5.PGO

내 이전 기사: PHP7을 더 빠르게 만들기(GCC PGO)에서도 PHP가 특정 프로젝트용인 경우에 대해 소개했습니다. , 예를 들어 WordPress, Drupal 등의 경우 PGO를 사용하여 프로젝트의 성능을 향상시킬 수 있습니다.

특히 PHP를 컴파일할 때 WordPress 4.1을 먼저 사용하세요.

$ make prof-gen

그런 다음 프로젝트를 사용하여 WordPress용 PHP를 교육합니다.

$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null

즉, php-cgi가 100을 실행하도록 합니다. WordPress 홈페이지를 통해 프로세스에서 일부 프로필 정보를 생성합니다.

마지막으로:

$ make prof-clean
$ make prof-use && make install

이번에 컴파일하는 PHP7은 프로젝트에 맞춰진 최고 성능의 컴파일 버전입니다.

위 내용은 5가지 php7 성능 최적화 팁 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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