PHP에서는 참조별 전달이 항상 더 빠릅니까?

Susan Sarandon
풀어 주다: 2024-11-08 18:02:02
원래의
921명이 탐색했습니다.

Is Pass-by-Reference Always Faster in PHP?

PHP에서 참조에 의한 전달이 더 빠른가요(>=5.0)?

PHP에서 참조에 의한 전달의 주요 목적에도 불구하고 함수 범위 밖의 변수 조작이므로 성능에도 영향을 미치는지 추측할 수 있습니다. PHP는 Copy On Write를 사용하여 객체 및 배열 복사를 최적화하므로 변경되지 않은 매개변수에 대한 참조별 전달이 필요하지 않습니다.

성능 비교

성능 영향을 확인하기 위해 20kB 문자열을 매개변수로 전달하여 100,000개의 함수 호출을 사용하여 실험을 수행했습니다. 두 가지 시나리오가 테스트되었습니다.

  1. 매개변수를 읽고 사용하는 함수
  2. 매개변수를 작성/수정하는 함수 매개변수

결과

  • 값과 매개변수 읽기/사용 참조 비교:

    • 값 전달: 0.12065005 초
    • 참조로 전달: 1.52171397초
  • 값으로 전달 및 매개변수 작성/수정을 위한 참조:

    • 값으로 전달: 1.52223396 초
    • 참조로 전달: 1.52388787초

결론

  1. 값으로 전달하는 것이 지속적으로 더 빠릅니다. ~보다 참조에 의한 전달.
  2. 매개변수의 값을 수정하는 함수의 경우 값에 의한 전달과 참조에 의한 전달 사이에 실질적인 성능 차이가 없습니다.

위 내용은 PHP에서는 참조별 전달이 항상 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿