2012-01-23 42 views
0

我一直在嘗試優化一個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. 我知道將對象序列化爲cookies並不是一個好主意,因此將對象串行化爲包含將要解析的字符串的cookie解決了我的性能問題?
  5. 正如我所說的頁面使用一些自動發佈後臺,我可以調試和修正cookies讀取(反序列化),寫入(序列化)大約5次,然後加載頁面。這會對性能產生如此不利的影響,導致服務器掛起/崩潰?

感謝,並有一個愉快的一天,

+1

每頁50個查詢似乎有點高。 – ChrisF

+0

對不起,是一個錯過打印的平均實際上是25-30(編輯) – Constantin

回答

0

你可以只嘗試使用服務器端的「餅乾店」(NoSQL的?),只是保存一個標識符實際coockie看看會發生什麼,因爲大餅乾不好(想想互聯網連接速度慢,上傳速度會更慢)...

相關問題