【发布时间】:2015-04-04 11:02:54
【问题描述】:
我有一个网站,当用户未登录时速度非常快,但在登录后开始使用 SESSIONS 时速度会急剧下降。我开始使用 session_write_close();尽可能立即,但似乎没有帮助。
SESSIONS 设置为 /tmp 中的文件
有人对如何改进有任何想法吗?我每个用户使用 8 个 $_SESSIONs。降低它会提高性能吗?
编辑:澄清一下,我设置了 8 个不同的 $_SESSION 变量,而不是打开 8 个会话。
编辑 2:将我的 SESSION 数据合并到一个数组中。没提升。数据为 630 个字符。让它变小也不会改善它。
【问题讨论】:
-
您必须并且可以使用一个会话来存储所有信息。无需为单个用户执行 8 个会话。
-
$_SESSION[]中的条目数量并不重要(如果它们在合理的限制内)。会话数据在session_start()上只读取一次,并且在脚本结束时(或在session_write_close())上也只写回文件一次。这将花费大量时间的一些原因可能是安装在/tmp(NFS,也许是?)上的文件系统非常慢,您存储在$_SESSION(非常大的阵列?)中的信息非常多。我宁愿调查数据库查询(代码通常为登录用户运行比匿名用户更多的查询)。
标签: php performance session