PHP의 참조에 의한 전달이 성능을 향상시키나요 아니면 방해합니까?
PHP에서 참조별 전달의 성능 영향
PHP에서 함수 매개변수는 앰퍼샌드로 표시되는 참조로 전달될 수 있습니다( &) 매개변수 앞에. 이 개념은 주로 함수가 해당 범위 외부의 변수를 수정할 수 있도록 하는 데 사용되지만 일부에서는 이것이 잠재적인 성능 영향에 대해 의문을 제기했습니다.
값별 전달 및 참조별 전달
PHP는 COW(작성 시 복사)를 사용하여 객체 및 배열 복사를 최소화합니다. 이 프로세스를 통해 변수 중 하나가 수정을 시도할 때까지 원본 데이터가 변수 간에 공유됩니다. 그러나 참조별 전달이 COW 논리를 단락시켜 성능을 향상시키는지에 대한 의문이 제기됩니다.
비교 벤치마크 테스트
성능에 미치는 영향을 확인하려면 , 테스트는 (A) 매개변수만 읽는 함수와 (B) 매개변수를 수정하는 두 가지 시나리오로 수행되었습니다. 매개변수는 20kB 문자열이었고 각 시나리오에서 함수가 100,000번 호출되었습니다.
결과
시나리오 A(읽기 전용 함수)의 경우:
- 값 전달: 0.12065005 초
- 참조로 전달: 1.52171397초
시나리오 B(쓰기/수정 기능)의 경우:
- 값으로 전달: 1.52223396초
- 참조 전달: 1.52388787초
결론
이러한 결과를 바탕으로 다음과 같은 결론을 내릴 수 있습니다.
- 통과 -값은 항상 더 빠릅니다: 두 시나리오 모두에서 매개변수를 값으로 전달합니다. 읽기 전용 작업의 경우 참조로 전달하는 것보다 훨씬 빠른 것으로 입증되었습니다.
- COW는 단락되지 않습니다. 테스트를 통해 COW가 값 전달에 활성화되어 있음이 확인되었지만 쓰기 작업을 위해 참조로 전달할 때 우회되지 않습니다. 매개변수 수정을 위한 이 두 가지 접근 방식 간의 성능 차이는 무시할 수 있을 정도입니다.
위 내용은 PHP의 참조에 의한 전달이 성능을 향상시키나요 아니면 방해합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
