php file_put_content ——更高效写日志
开发时经常要写日志,比如排查问题用的日志、业务需要的日志。PHPer初期写日志的方式大多是用file_put_content、error_log或fopen、flock、fwrite系列函数,但当遇到高并发场景时,因为文件锁争抢及PHP本身是非编译型语言等原因,PHP提供的写日志方式就不够高效。
借鉴PHP扩展seaslog的写日志方式,采用以下几种手段可以更高效的写日志。
1、 先将日志放到内存buffer中,当请求结束或内存buffer满之后将数据刷入文件。
2、采用句柄复用,每个请求尽量只打开一次文件,减少锁的争抢。
3、 采用非独享锁, 不采用独享锁,提高性能。
4、 先响应数据给客户端(如利用fastcgi_finish_request函数),再异步写日志。
5、采用go、C++、C等编译型语言,相对于PHP是预编译好的代码,执行效率会更高。
相关推荐
-
MySQL 中的反斜杠 \\,真是太坑了2025-04-21 01:42:45
-
mysql修改主键为自增 ,如果自增达到最大值,新增加数据会怎样?
mysql修改主键为自增 ,如果自增达到最大值,新增加数据会怎样?2025-04-21 01:31:46 -
Nginx学习笔记 autoindex on2025-04-21 00:26:47
-
.MySQL中的BETWEEN(在某个范围)2025-04-21 00:04:20
-
nginx设置目录浏览并支持中文2025-04-21 00:00:35