<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 독립적 인 코드 예제</span></span><span>
</span><span><span class="hljs-variable">$dummyArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">range</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dummyArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-variable">$valueSquared</span></span><span> = </span><span><span class="hljs-variable">$value</span></span><span> ** </span><span><span class="hljs-number">2</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>큰 파일을 처리 할 때 사용하십시오 <code>stream_copy_to_stream그러나 파일이 매우 큰 경우 (수백 MB 또는 GB 레벨) 프로그램에서 명백한 지연을 발견하고 짧은 시간 안에 많은 메모리를 채울 수도 있습니다. 왜 이런 일이 일어나고 있습니까? 다음은 다음과 같은 몇 가지 주요 요소입니다.
기본 버퍼는 Stream_copy_to_stream 에서 내부적으로 데이터 전송에 사용됩니다. 파일이 매우 크면 부적절한 버퍼 설정으로 인해 I/O 작동이 빈번하여 속도가 느려집니다. 세 번째 매개 변수를 통해 매번 전송되는 데이터 양을 제어 할 수 있습니다.
</span><span><span class="hljs-title function_ invoke__">stream_copy_to_stream</span></span><span>(</span><span><span class="hljs-variable">$source</span></span><span>, </span><span><span class="hljs-variable">$dest</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>); </span><span><span class="hljs-comment">// 각 사본1MB</span></span><span>
버퍼 크기를 합리적으로 설정하면 시스템 호출 수가 줄어들고 전송 효율을 향상시킬 수 있습니다.
PHP 코드가보다 최적화 되더라도 기본 디스크 또는 네트워크의 읽기 및 쓰기 속도는 여전히 병목 현상입니다. SSD와 HDD의 성능 차이와 네트워크 전송 속도의 변동으로 인해 큰 파일 복사가 말더듬 될 수 있습니다. 이 경우 최적화 코드는 효과가 제한되어 있으며 하드웨어 또는 블록 전송 체계를 고려해야합니다.
파일이 너무 크면 Stream_copy_to_stream을 사용하여 한 번 전송하는 것이 가장 좋은 솔루션이 아닐 수 있습니다. 일반적인 전략에는 다음이 포함됩니다.
요컨대, Stream_copy_to_stream은 중소형 파일을 처리 할 때 실제로 편리하지만 큰 파일에 직면 할 때는 지연 문제를 무시할 수 없습니다. 버퍼를 합리적으로 설정함으로써 비동기 처리 및 기타 전략과 결합 된 블록 변속기는 성능을 효과적으로 향상시킬 수 있으며 "PHP 잼"경험을 피할 수 있습니다.
<?php // 테일 독립적 코드 예제 기능 dummyfunction ( $ num ) { return array_sum ( 범위 ( 1 , $ num )); } $ result = dummyfunction ( 50 ); ?>