PHP session_regenerate_id(true)性能影响

时间:2015-01-03 18:51:19

标签: php session

PHP函数session_regenerate_id(true)经常使用(我的意思是在每个页面加载和每个AJAX调用上重新生成会话ID)会对性能产生不良影响吗? 如果是这样,它还取决于$ _SESSION数组中存储了多少变量?

1 个答案:

答案 0 :(得分:2)

它可能很昂贵,尤其是当您使用自定义会话处理程序覆盖会话ID创建时。

默认情况下,开销为:

  1. 致电以获取当前系统时间。
  2. 查找$ _SERVER ['REMOTE_ADDR']
  3. 的两个哈希表查找
  4. 生成63字节格式字符串的打印
  5. 在此sprintf的输出上运行的加密哈希
  6. 从/ dev / random
  7. 读取32个字节的熵
  8. 散列数据
  9. 将输出转换为字符串
  10. 如果您设置的session_set_save_handler自定义处理程序为$create_sid提供了有效参数,则会使用此参数。在这种情况下,开销完全取决于您指定的保存处理程序。

    但是,如果默认行为对您有明显的性能影响,我会感到惊讶。如果你有一堆忽略cookie的客户请求,那真的没有什么不同。