我有一个网站,当用户没有登录时速度超快,但SESSIONS开始在登录后开始使用时显着减慢。尽可能立即但不起作用。PHP:导致缓慢的SESSIONS
会话设置为在/ tmp目录
人对如何改善任何想法的文件?我为每个用户使用8个$ _SESSION。会降低,提高性能?
编辑:澄清,我设置8个不同的$ _SESSION变量,不开放8个会话。
编辑2:将我的SESSION数据合并到一个数组中。没提升。数据是630个字符。使它变小也不会改善它。
我有一个网站,当用户没有登录时速度超快,但SESSIONS开始在登录后开始使用时显着减慢。尽可能立即但不起作用。PHP:导致缓慢的SESSIONS
会话设置为在/ tmp目录
人对如何改善任何想法的文件?我为每个用户使用8个$ _SESSION。会降低,提高性能?
编辑:澄清,我设置8个不同的$ _SESSION变量,不开放8个会话。
编辑2:将我的SESSION数据合并到一个数组中。没提升。数据是630个字符。使它变小也不会改善它。
我不知道在会话中保存了哪些数据,但听起来有点像在整个对象中保存大量大数据,例如整个对象。会话是从您的硬盘写入并读取的。当你有很多数据时,加载它们需要很多时间。
要检查您的会话是否有很多数据,您可以使用var_dump($_SESSION);
来检查SESSION中的数据。
接下来就是您应该将数据放在像SSD这样的快速设备上,例如不在NFS文件系统或其他任何设备上。
正常情况下,会话系统足够快。
你必须和你可以使用一个会话来存储所有的信息。无需为单个用户进行8个会话。 – 2015-04-04 11:17:39
'$ _SESSION []'中的条目数量并不重要(如果它们在合理的限制内)。会话数据在'session_start()'上只读取一次,并在脚本结束时(或'session_write_close()')只写一次。这需要很长时间的一些原因可能是一个非常缓慢的文件系统挂载在'/ tmp'(NFS,也许?),你存储在$ _SESSION'(非常大的数组?)中的非常多的信息。我宁愿调查数据库查询(代码通常对登录用户运行的查询次数多于匿名用户)。 – axiac 2015-04-04 11:59:44