PHP 7 은 어떻게 Opcode 를 열 어 강력 한 성능 을 만 드 는 지 상세 하 게 설명 합 니 다.
새 형 은 블 로그 에서 PHP 7 의 성능 을 향상 시 키 는 몇 가지 tips,첫 번 째 는 opcache 를 켜 는 것 이 라 고 말 했다.
Zend Opcache 를 사용 하 십시오.PHP 7 은 Opcache 를 사용 하지 않 아 도 PHP-5.6 보다 Opcache 속도 가 빨 라 서 이전 테스트 시기 에 Opcache 를 사용 하지 않 은 사람 이 있 었 습 니 다.
그럼 Opcache 가 뭐 죠?
Opcache 의 전생 은 Optimizer+로 PHP 의 공식 회사 인 Zend 가 개발 한 폐 원 이지 만 무료 로 사용 할 수 있 는 PHP 최적화 가속 구성 요소 입 니 다.Optimizer+는 PHP 코드 를 미리 컴 파일 하여 생 성 한 스 크 립 트 파일 인 Opcode 캐 시 를 공유 메모리 에서 나중에 반복 적 으로 사용 할 수 있 도록 하여 디스크 에서 코드 를 읽 고 다시 컴 파일 하 는 시간 소 모 를 피 할 수 있 습 니 다.이 동시에 일부 코드 최적화 모델 을 응용 하여 코드 를 더욱 빨리 실행 하도록 했다.PHP 실행 을 가속 화 합 니 다.
PHP 의 정상 적 인 실행 절 차 는 다음 과 같 습 니 다.
request 요청(nginx,apache,cli 등)-->Zend 엔진 읽 기.php 파일-->사전 과 표현 식 스 캔-->파일 분석-->실행 할 컴퓨터 코드 만 들 기(Opcode 라 고 함)-->마지막 실행 Opcode-->response 되 돌려 주기
매번 PHP 스 크 립 트 를 요청 할 때마다 상기 절 차 를 실행 합 니 다.만약 에 PHP 소스 코드 가 변 하지 않 으 면 Opcode 도 변 하지 않 습 니 다.매번 Opcode 를 다시 만 들 필요 가 없습니다.웹 에 없 는 캐 시 체제 와 결합 하면 우 리 는 Opcode 를 캐 시 할 수 있 습 니 다.나중에 캐 시 에 직접 방문 하 는 Opcode 가 더 빠 르 지 않 습 니까?Opcode 캐 시 를 사용 한 프로 세 스 는 다음 과 같 습 니 다.
Opcode cache 의 목적 지 는 중복 컴 파일 을 피하 고 CPU 와 메모리 비용 을 줄 이 는 것 입 니 다.
다음은 Opcache 의 설 치 를 소개 합 니 다.
설치:
1.opcache 의 확장 을 찾 았 습 니 다.저 는 phop 7.1 입 니 다.
yum list php71*
2.설치 확장
yum install php71w-opcache.x86_64
설정:zend_extension=opcache.so
[opcache]
;opcache 열기
opcache.enable=1
;CLI 환경 에서 PHP 는 OPcache 를 사용 합 니 다.
opcache.enable_cli=1
;OPcache 공유 메모리 크기,단위 MB
opcache.memory_consumption=128
;PHP 는 문자열 상주(string interning)라 는 기술 을 사용 하여 성능 을 개선 합 니 다.예 를 들 어 코드 에 1000 번 의 문자열'foobar'를 사용 하면 PHP 내부 에서 이 문자열 을 처음 사용 할 때 만 가 변 적 이지 않 은 메모리 영역 을 할당 하여 이 문자열 을 저장 합 니 다.다른 999 번 의 사용 은 이 메모리 영역 을 직접 가리 킵 니 다.이 옵션 은 이 기능 을 한 단계 향상 시 킵 니 다.기본 적 인 상황 에서 이 가 변 적 이지 않 은 메모리 영역 은 하나의 phop-fpm 프로 세 스 에 만 존재 합 니 다.이 옵션 을 설정 하면 모든 phop-fpm 프로 세 스 에서 공 유 됩 니 다.비교적 큰 응용 에서 이것 은 메모 리 를 매우 효과적으로 절약 하고 응용 성능 을 향상 시 킬 수 있다.
이 옵션 의 값 은 메가바이트(megabytes)단위 이 며,16 으로 설정 하면 16MB,기본 값 은 4MB 입 니 다.
opcache.interned_strings_buffer=8
;이 옵션 은 메모리 에 최대 몇 개의 PHP 파일 을 캐 시 할 수 있 는 지 제어 하 는 데 사 용 됩 니 다.이 옵션 은 프로젝트 의 모든 PHP 파일 의 합계 보다 크게 설정 해 야 합 니 다.
설정 값 추출 범위 의 최소 값 은 200 이 고 최대 값 은 PHP 5.5.6 이전 에는 100000,PHP 5.5.6 및 그 다음 에는 1000000 입 니 다.200 에서 1000000 사이 에
opcache.max_accelerated_files=4000
;캐 시 만 료 시간(단 위 는 초)을 설정 하고 0 이면 매번 검사 해 야 합 니 다.
opcache.revalidate_freq=60
;말 그대로'더 빠 른 닫 기 허용'이다.하나의 요청 이 끝 날 때 코드 에 있 는 분석 기 를 호출 하여 PHP 의 응답 속도 와 PHP 프로 세 스 자원 의 회수 속 도 를 빠르게 하 는 역할 을 합 니 다.그러면 프로그램 이 다음 요청 에 더욱 빠르게 응답 할 수 있 습 니 다.그것 을 1 로 설정 하면 이 메커니즘 을 사용 할 수 있다.
opcache.fast_shutdown=1
;활성화(1 로 설정)하면,OPcache 는 opcache.revalidatefreq 설정 한 초 수 는 파일 의 시간 스탬프(timestamp)를 검사 하여 스 크 립 트 가 업데이트 되 었 는 지 확인 합 니 다.
이 옵션 이 비활성화 되면(0 으로 설정),opcache.revalidatefreq 는 무시 되 며,PHP 파일 은 영원히 검사 되 지 않 습 니 다.코드 를 수정 한 후 서버 에 업데이트 하고 브 라 우 저 에서 업데이트 요청 한 코드 에 대응 하 는 기능 을 사용 하면 업데이트 효 과 를 볼 수 없다 는 뜻 이다.
생산 환경 에서 0 으로 설정 하고 코드 를 업데이트 한 후 PHP 와 웹 서버 를 부 드 럽 게 다시 시작 하 는 것 을 강력 히 권장 합 니 다.
opcache.validate_timestamps=0
;Opcache File Cache(실험 성)를 엽 니 다.이것 을 열 면 Opcache 가 opcode 캐 시 를 외부 파일 에 캐 시 할 수 있 습 니 다.일부 스 크 립 트 에 대해 뚜렷 한 성능 이 향상 될 것 입 니 다.
이렇게 하면 PHP 는/tmp 디 렉 터 리 에서 Cache 의 일부 Opcode 의 바 이 너 리 내 보 내기 파일 로 PHP 수명 주 기 를 뛰 어 넘 을 수 있 습 니 다.
opcache.file_cache=/tmp
phpinfo 보기:
테스트 결과:
같은 인 터 페 이 스 는 이전의 몇 백 밀리초 에서 현재 의 50ms 정도 로 향상 되 었 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeigniter 4 Post 요청안녕하십니까, 안녕하십니까?,당신들에게 이것은 당신들이 코드igniter4의 작업 원리에 대해 기본적인 이해를 얻었거나 단지 시험해 보고 싶다는 것을 의미합니다. 따라서 이 예에서 POST 요청을 뷰에서 컨트롤러로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.