<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이것은 기사의 내용과 관련이 없습니다. PHP 코드 예제</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"환경을 초기화하십시오...\n"</span></span><span>;
</span><span><span class="hljs-variable">$init_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">microtime</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-variable">$log_file</span></span><span> = </span><span><span class="hljs-string">"init.log"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>, </span><span><span class="hljs-string">"초기화가 완료되었습니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>, FILE_APPEND);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>결합하는 방법 PHP set_file_buffer 그리고 fopen 기능,보다 효율적인 파일 작업을 달성합니다?</h1>
<p>존재하다 PHP 큰 파일을 처리 할 때,文件的读取그리고写入性能往往会成为瓶颈。파일 작동의 효율성을 향상시키기 위해,우리는 결합 할 수 있습니다 <code>fopenset_file_buffer 함수는 파일 작동의 버퍼 크기를 설정하는 데 사용됩니다. 기본적으로 PHP에는 파일 작업을위한 내장 버퍼링 메커니즘이 있지만 대형 파일을 처리하거나 자주 읽기 및 쓰기를 자주 할 때 버퍼 크기를 수동으로 조정하면 성능이 크게 향상 될 수 있습니다.
</span><span><span class="hljs-title function_ invoke__">stream_set_write_buffer</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">8192</span></span><span>); </span><span><span class="hljs-comment">// 버퍼를 설정하십시오 8KB</span></span><span>
버퍼 크기를 합리적으로 설정하면 시스템 호출 수를 줄이고 I/O 간접비를 줄이고 파일 작동 효율을 향상시킬 수 있습니다.
다음은 Fopen을 사용하여 파일을 열고 버퍼를 Set_File_Buffer를 통해 효율적으로 작성하도록 설정하는 방법을 보여주는 완전한 예입니다.
</span><span><span class="hljs-comment">// 쓰기를 위해 파일을 엽니 다</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"large_file.txt"</span></span><span>, </span><span><span class="hljs-string">"w"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$handle</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"파일을 열 수 없습니다"</span></span><span>);
}
</span><span><span class="hljs-comment">// 버퍼 크기를 설정하십시오 16KB</span></span><span>
</span><span><span class="hljs-title function_ invoke__">stream_set_write_buffer</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">16</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>);
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> < </span><span><span class="hljs-number">100000</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
</span><span><span class="hljs-title function_ invoke__">fwrite</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-string">"이것은 첫 번째입니다 <span class="hljs-subst">$i</span></span></span><span> 라인 데이터\n");
}
</span><span><span class="hljs-comment">// 파일 핸들을 닫습니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
위의 예에서, 버퍼를 16 kb로 설정함으로써, PHP는 FWRRITE가 호출 될 때마다 실제 디스크 쓰기를 수행하지 않지만 먼저 메모리의 데이터를 캐시 한 다음 버퍼 상한에 도달하면 디스크에 쓸 수 있으므로 디스크 I/O 작업의 수를 크게 줄일 수 있습니다.
fopen 과 set_file_buffer를 결합하면 PHP 파일 작업의 효율성을 크게 향상시킬 수 있습니다. 버퍼 크기를 합리적으로 설정하고 시스템 통화 수를 줄이면 큰 파일을 처리하거나 고주파 읽기 및 쓰기를 처리 할 때 상당한 성능 향상을 달성 할 수 있습니다. 이러한 기술을 마스터하면 PHP 파일 처리 기능이보다 효율적이고 안정적입니다.
관련 태그:
fopen