【发布时间】:2012-01-23 23:16:51
【问题描述】:
这几天我一直在尝试优化一个 ASP.NET C# 应用程序,我对一些问题感到好奇。
使用 PageSpeed Firefox 插件,我能够追踪并消除一些不必要的 ajax 调用并启用静态资源缓存,但仍然存在相当大的性能问题。
当打开任何给定页面时,大约有 25 个对服务器的请求(ajax、自动回发、静态内容),PageSpeed 指出的问题之一是请求大小太高,更具体地说,cookie 大小是1.4KB。据我从其他来源了解,每个请求都会将 cookie 传递给服务器。我还阅读了一个解决方案,“静态内容的无 Cookie 域”,但这不是一个选项,因为我无法控制应用程序结构和托管环境。 cookie 是使用内存流和 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 对象写入和读取的,以序列化自定义对象列表(这些字段的 2 个字段和 2 个属性,对于 BinaryFormatter 有点多余)。
我的问题是:
- 这么大的请求对性能的影响有多大?
- 它们是否足以导致服务器挂起/崩溃? (经常发生)
- 有没有办法显着减小 BinaryFormatter 的输出大小?
- 我知道将对象序列化为 cookie 不是一个好主意,那么将对象序列化为 cookie 替换为将被解析的字符串会解决我的性能问题吗?
- 正如我所说的,这些页面使用了一些自动回发,我可以在页面加载之前调试和加载 cookie 读取(反序列化)、写入(序列化)大约 5 次。这是否会对性能产生不利影响,导致服务器挂起/崩溃?
谢谢,祝你有美好的一天,
【问题讨论】:
-
每页 50 个查询似乎有点高。
-
抱歉,打印错了平均实际是 25-30(已编辑)