>  기사  >  백엔드 개발  >  PHP에서 쓰기 시 복사는 무엇을 의미합니까?

PHP에서 쓰기 시 복사는 무엇을 의미합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-01 16:17:193027검색

PHP에서 쓰기 시 복사는 변수에 값을 할당할 때 동일한 값을 가진 변수가 동일한 메모리 블록을 가리킬 경우에만 발생한다는 의미입니다. 변수의 변수 중 하나의 값은 변경이 발생할 때만 필요합니다.

PHP에서 쓰기 시 복사는 무엇을 의미합니까?

PHP에서 Copy on write의 의미는 다음과 같습니다.

쓰기 시 복사(Copy-on-Write, 줄여서 COW라고도 함)는 이름에서 알 수 있듯이 writing 수정을 위해 실제로 메모리의 복사본을 만듭니다. COW는 스레드와 메모리 사용을 최적화하기 위해 *nix 시스템에서 처음 사용되었으며 이후 C++의 STL 등 다양한 프로그래밍 언어에서 널리 사용되었습니다. 写时复制(Copy-on-Write,也缩写为COW),顾名思义,就是在写入时才真正复制一份内存进行修改。 COW最早应用在*nix系统中对线程与内存使用的优化,后面广泛的被使用在各种编程语言中,如C++的STL等。 

在PHP内核中,COW

PHP 커널에서는 COW도 주요 메모리 최적화 방법입니다. 변수와 메모리에 대한 이전 논의에서 참조 카운팅은 변수를 파괴하고 재활용하는 데 중요한 식별 역할을 합니다. 참조 카운팅의 목적은 COW가 정상적으로 작동할 수 있도록 하여 최적의 메모리 사용을 달성하는 것입니다.

쓰기 중 복사의 장점:

변수에 값을 할당할 때 새 변수에 의해 저장된 값을 저장하기 위해 새 메모리를 적용하지 않고 단순히 메모리를 공유한다는 것입니다. 카운터 중 하나만 참조가 가리키는 변수의 값이 변경되는 경우에만 메모리 사용량을 줄이기 위해 값 내용을 저장하기 위해 새로운 공간을 할당합니다.

PHP의 기본 데이터 구조 관점에서 보면

ref_count 및 is_ref는 zval 구조에 정의됩니다.

is_ref는 사용자가 &를 필수 참조로 사용하는지 여부를 식별합니다. 이 zval이 얼마나 많은 변수 참조, 즉 쓰기 시 복사된 자동 참조가 0일 때 파괴되는지 확인합니다.

관련 학습 권장 사항:

초보부터 마스터까지 PHP 프로그래밍

위 내용은 PHP에서 쓰기 시 복사는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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