最近在写前后端分离项目时,使用xhprof对代码进行性分析,发现偶尔有些请求特别慢。追调用栈定位到是session_start函数的原因。查阅官方手册发现在session_start后会有文件锁,所以并发请求时容易出现再次调用session_start函数时会耗时很长的现象。
解决办法:
1.在session_start函数参数中使用read_and_close选项(参见官方手册)
2.通过 session_set_save_handler() 设定的用户自定义会话管理器(使用cache或者使用db)
参见资料: