我在PHP mysql中编程。 我最近进入了OOP编程。
所以我需要序列化我的对象并将它们存储到SESSIONS。但是我觉得这些大型会议正在减缓我网页的刷新和加载速度。
是否有替代方法(比序列化反序列化),以便我仍然可以将我的对象从网页共享到网页并缩短加载时间。
由于 拉胡
答案 0 :(得分:1)
从页面加载到页面加载,您存储的所有对象都是必需的吗?如果没有,那么您需要将这些对象保留在会话之外,并且只在您需要的页面上重建它们。
您在会话中存储的每个对象都会在每个页面加载时被序列化和反序列化,无论您是否确实需要它。因此,您需要将其保持在最低限度。
另一个选项是仅存储在会话中重建对象而不是整个对象所需的内容。例如,您可以在会话中存储数据库ID,并在需要时从数据库重建对象。
答案 1 :(得分:1)
您应首先分析实际瓶颈是什么。它真的是对象序列化/反序列化吗?
如果是这样,请问自己,是否所有对象都需要出现在每个请求上,或者是否可以按需重建。然后你可以存储键值来重建那些对象而不是整个对象。
但是如果你需要所有这些对象,请使用比默认(文件系统中的文件)更高性能的存储位置,也许是内存(memcache)。
答案 2 :(得分:0)
根据经验,您应该尝试将会话大小限制在4KB或更低(独立于您使用的编程语言)。如果您的数据大于此值,您应该开始使用数据库中的表(如MySQL / PostgreSQL / ...)来保存数据。
示例:存储博客文章的草稿
draft=1
)。相信我,如果您选择数据库会更方便(并且您不必为序列化而烦恼)。