Php 沉重的会议减缓了网站

Php 沉重的会议减缓了网站,php,session,Php,Session,我正在用PHP mysql编程。 我最近开始接触OOP编程 所以我需要序列化我的对象并将它们存储到会话中。然而,我认为巨大的会议正在减缓刷新和加载我的网页 是否有替代方法(而不是序列化反序列化),以便我仍然可以在网页之间共享我的对象,并缩短加载时间 谢谢 Rahul从页面加载到页面加载,您存储的所有对象都是必需的吗?如果没有,那么您需要将这些对象排除在会话之外,只在需要的页面上重建它们 您存储在会话中的每个对象在每次页面加载时都将被序列化和非序列化,而不管您是否真的需要它。所以你要把它控制在最低

我正在用PHP mysql编程。 我最近开始接触OOP编程

所以我需要序列化我的对象并将它们存储到会话中。然而,我认为巨大的会议正在减缓刷新和加载我的网页

是否有替代方法(而不是序列化反序列化),以便我仍然可以在网页之间共享我的对象,并缩短加载时间

谢谢
Rahul

从页面加载到页面加载,您存储的所有对象都是必需的吗?如果没有,那么您需要将这些对象排除在会话之外,只在需要的页面上重建它们

您存储在会话中的每个对象在每次页面加载时都将被序列化和非序列化,而不管您是否真的需要它。所以你要把它控制在最低限度


另一个选项是只存储会话中重建对象所需的内容,而不是整个对象。例如,您可以在会话中存储数据库id,并在需要时从数据库重建对象。

根据经验,您应该尝试将会话大小限制为4KB或更小(与您使用的编程语言无关)。如果您的数据大于这个值,您应该开始使用数据库中的表(如MySQL/PostgreSQL/…)来持久化数据

示例:存储博客文章的草稿

  • 在会话中(包括所有图像等)vs
  • 在Article DB表中(其中标志
    draft=1

  • 相信我,如果您选择DB(并且您不必为序列化而烦恼),它会更方便。

    您应该首先分析实际的瓶颈是什么。它真的是对象序列化/反序列化吗

    如果是这样的话,问问自己,是否所有的对象都需要在每次请求时出现,或者是否可以根据需要重建它们。然后,您可以只存储键值来重建这些对象,而不是整个对象


    但是,如果您需要所有这些对象,请使用比默认存储位置(文件系统中的文件)性能更高的存储位置,可能是内存(memcache)。

    Hi,是否仍可以查看会话的大小。。。我喜欢它。我不知道会话的大小,谢谢如果您使用Apache,请查看您的Apache\u ROOT/tmp文件夹,并查找名为sess\u*的文件。否则,从中获取脚本并将其传递给$\u SESSION.paste-it.net脱机时,是否有指向脚本的其他链接?@Rahul:使用
    SESSION.save\u handler
    ()或
    SESSION\u save\u handler
    函数()。+1 for:您应该首先分析实际的瓶颈是什么。