很抱歉,如果这对非菜鸟来说显而易见。是否更快:
或
我不确定这是否会变成“一根弦多长时间?”有点问题,但如果确实如此,那么也许你可以让我知道做决定涉及哪些因素?
答案 0 :(得分:4)
会话数据存储为文本,而非二进制数据,因此当您将其投入会话时,无论如何都会重新创建对象。它可能比自己初始化要慢一点,因为它必须进行一些字符串解析但我怀疑它是多么担心。简而言之,它可能无论如何都没有区别。
答案 1 :(得分:0)
这当然取决于创建对象时完成了多少逻辑。您应该对两种变体做一些基准测试。
答案 2 :(得分:0)
如果不进行测量,我会说存储和检索应该更快。 为了重新创建对象,你必须调用多个构造函数等,而检索不应该调用任何函数调用。
答案 3 :(得分:0)
这显然取决于你在对象中有哪些字段,有多少字段以及如何填充它们。无论如何,每次加载页面时都会发生对象的发生,因此这是字段及其来源的问题。
答案 4 :(得分:0)
要小心谨慎地尝试优化它。请记住,在会话中存储项目可能会很繁重,尤其是在您的网站流量很大的情况下。
另外,我看到很多人创建了一个对象,它访问数据库并加载它的属性。然后将其存储在会话中,在回发时更新,然后保存回数据库。
这很好,但它会导致难以进行并发检查 - 比如你的对象有上次保存的时间戳 - 如果你每次保存之前重新加载它,你可以很容易地检查自上次加载后时间戳是否已经改变,在这种情况下,您可能需要停止保存才能继续。
无论哪种方式,差异都不会很大。