大型cookie会导致应用程序变慢吗?

时间:2012-01-23 15:10:28

标签: c# asp.net cookies

我一直在尝试优化ASP.NET C#应用程序几天,我很好奇一些问题。

使用PageSpeed Firefox插件我能够追踪并消除一些不必要的ajax调用并启用静态资源的缓存,但仍存在相当大的性能问题。

当打开任何给定页面时,大约有25个请求到服务器(ajax,自动回发,静态内容),而PageSpeed指出的一个问题是请求大小太高,更具体地说,cookie大小是1.4kb的。据我所知,其他来源的cookie会随着每个请求传递给服务器。我还读到了一个解决方案,“用于静态内容的Cookie免费域名”,但这不是一个选项,因为我无法控制应用程序结构和托管环境。 使用内存流和System.Runtime.Serialization.Formatters.Binary.BinaryFormatter对象编写和读取cookie以序列化自定义对象列表(这些字段有2个字段和2个属性,BinaryFormatter有点多余)。

我的问题是:

  1. 这么大的请求会影响性能多少?
  2. 它们是否足以导致服务器挂起/崩溃? (它经常发生)
  3. 有没有办法大大减少BinaryFormatter输出的大小?
  4. 我知道将对象序列化为cookie并不是一个好主意,所以将对象的序列化替换为带有解析字符串的cookie会解决我的性能问题吗?
  5. 正如我所说,这些页面使用了一些自动回发功能,我可以调试并保存cookie,在页面加载之前,可以读取(反序列化),写入(序列化)大约5次。这是否会对性能产生负面影响,导致服务器挂起/崩溃?
  6. 谢谢,祝你有愉快的一天,

1 个答案:

答案 0 :(得分:0)

你可以尝试使用服务器端的“cookie-store”(NoSQL?),只需在实际的coockie中保存一个标识符,看看会发生什么,因为大的cookie很糟糕(想想慢的互联网连接甚至更慢)上传速度)...