我一直在嘗試優化一個ASP.NET C#應用程序幾天,我很好奇一些問題。大餅乾會導致應用程序變慢嗎?
使用PageSpeed Firefox插件我能夠追蹤並消除一些不必要的Ajax調用並啓用對靜態資源的緩存,但仍然存在相當多的性能問題。
打開任何給定頁面時,服務器大約有25個請求(ajax,自動回發,靜態內容),PageSpeed指出的其中一個問題是請求大小太高,更具體地說是cookie大小是1.4KB。正如我從其他來源瞭解的那樣,cookie會在每次請求時傳遞給服務器。我還閱讀了一個解決方案,「靜態內容的Cookie免費域」,但這不是一種選擇,因爲我不控制應用程序結構和託管環境。 使用內存流和System.Runtime.Serialization.Formatters.Binary.BinaryFormatter對象編寫和讀取cookie以序列化自定義對象列表(這些字段有2個字段和2個屬性,對於BinaryFormatter有點冗餘)。
我的問題是:
- 多少能如此大的請求影響性能?
- 它們足以導致服務器掛起/崩潰嗎? (它經常發生)
- 有沒有一種方法可以大大減少BinaryFormatter輸出的大小?
- 我知道將對象序列化爲cookies並不是一個好主意,因此將對象串行化爲包含將要解析的字符串的cookie解決了我的性能問題?
- 正如我所說的頁面使用一些自動發佈後臺,我可以調試和修正cookies讀取(反序列化),寫入(序列化)大約5次,然後加載頁面。這會對性能產生如此不利的影響,導致服務器掛起/崩潰?
感謝,並有一個愉快的一天,
每頁50個查詢似乎有點高。 – ChrisF
對不起,是一個錯過打印的平均實際上是25-30(編輯) – Constantin