我有一个执行以下操作的页面:
当用户重新加载页面时,将从头开始执行这5个操作。为了避免每次用户重新加载页面时执行所有这5个操作,我们可以在会话中保存最终结果(操作号5)。所以我们可以说:
If session is not set
Perform those 5 operations
else
Print session values
这将减少CPU负载,但需要一些(我不知道多少)内存而不是在会话中保存信息。但是有人认为加载CPU而不是内存更好。 问题:你建议我做什么?是否使用会话(在我的情况下)?还有其他更好的解决方案吗?
答案 0 :(得分:3)
使用APC或Memcached。它们是内存键值缓存,专为此目的而设计。 如果需要,可以在其中存储数组,设置到期时间以进行无效。 Facebook uses them减少负荷,所以它们不能坏...... :)
答案 1 :(得分:1)
答案 2 :(得分:0)
在你的情况下:你还需要什么,CPU或内存?
如果这5个操作的结果不经常改变,请务必缓存结果(在会话中或磁盘上)。
答案 3 :(得分:0)
您还可以将结果存储在新的DB-Table中。 或者在会话中。
使用的内存取决于访问您网站的用户数量。每个用户都将在session_save_path目录中生成一个新条目(即存储会话信息的地方)。
另请注意,PHP会在一段时间后删除此目录中的旧条目,这意味着下次用户访问您的网页时必须重新生成该值。但这也意味着,内存空间得以保存。