$fp = fopen($file, 'a+'); while($count > $loop) { fwrite($fp, $text); } fclose($fp);
- ...
- ...
- ...
- 전체 요청이 진행되는 동안 파일을 열어두고 다음 로그 이벤트가 발생할 때 flock으로 풀고 다시 묶는다.
$fp = fopen($file, 'a+'); flock($fp, LOCK_UN); while($count > $loop) { if (flock($fp, LOCK_EX)) { fwrite($fp, $text); } flock($fp, LOCK_UN); } fclose($fp);
- ...
100문자를 10,000번 쓰기 실행.
- Execution with NOT closing the log file took 0.0668561458588 seconds
로그 파일을 닫지 않고 실행 0.0668561458588 초. - Execution with CLOSING the log after each write file took 30.1630220413 seconds
각 쓰기 파일을 마친 후 로그를 닫은 상태로 실행 30.1630220413 초. - Execution with fileputcontent took 30.153963089 seconds
file_put_content 실행 30.153963089 초. - Execution with leaving the file open, but LOCKING and UNLOCKING it took 0.148998975754 seconds
파일을 열어 둔 상태로 실행. 그 후 잠금 및 잠금 해제에는 0.148998975754 초. - Execution with nonblocking stream took 0.149605989456 seconds
비 차단 스트림 실행 0.149605989456 초. - Execution with the error_log method took 30.069578886 seconds
error_log 실행은 30.069578886 초.
이제 테스트를 해보자...
반응형
'lang > php' 카테고리의 다른 글
텍스트 치환 함수 속도 String Replacement Method Speed (0) | 2018.04.26 |
---|---|
date, microtime speed and calculate (0) | 2018.04.25 |
Ubuntu php7.1/7.2 Switch (0) | 2018.03.02 |
Yii model get query (0) | 2017.08.25 |
PHP math-php (0) | 2017.06.01 |