InMemoryCookieStore是java的默認CookieStore,但主存儲是ArrayList,在最壞的情況下,添加和移除操作將花費O(n),並且index是map,它掃描keySet以移除過期的cookie。爲什麼它使用樹(它可以很好地表示域名,比如.b.com是.a.b.com的父級),並設置(在常量時間內定位Cookie)。爲什麼CookieStore的默認實現不使用樹形結構?
0
A
回答
1
的的CookieStore有一個方法
List<HttpCookie> getCookies()
所以它必須保持,或所有cookie複製的需求。我認爲他們決定維持一個清單是最有效的。
0
你有多少次使用O(n)在性能方面明顯大於O(1)?在子優化和代碼可管理性之間進行選擇時,大多數都選擇乾淨,可管理的代碼。
+0
同意,爲什麼它只是一個默認的實現。所以我必須爲我的網絡爬蟲實現更高效的工作〜 – ivoryxiong
+0
好吧,繼續吧,自己敲門;)海事組織,這是浪費時間。從頭文件解析每個cookie的成本將超過將Cookie添加到CookieStore的成本高出許多個數量級,這使得對整個執行時間內的Cookie存儲庫的優化完全不明顯。 – pap
相關問題
- 1. 爲什麼我不能爲D中的結構實現默認構造函數?
- 2. 在c上實現樹形結構#
- 3. Qt中有圖形數據結構的默認實現嗎?
- 4. 爲什麼不用( - >)默認實現Control.Monad.Instances
- 5. 「hashCode」的默認實現是什麼?
- 6. 什麼是GHCi MonadError的默認實現?
- 7. 爲什麼默認值不使用Django
- 8. 爲什麼PyCrypto不使用默認IV?
- 9. 默認情況下,爲什麼不打包結構?
- 10. 用樹形結構
- 11. 用樹形結構
- 12. 實現樹狀結構UITableview
- 13. 實現UITableView樹結構
- 14. 默認的默認構造函數,爲什麼不是用戶提供的默認構造函數?
- 15. 爲什麼C#中的結構不能有明確的默認構造函數
- 16. 爲什麼不是默認
- 17. 爲什麼使用數組而不是BT實現分段樹
- 18. 什麼被認爲是最好的Java後綴樹實現?
- 19. 爲什麼DbConnection.OpenAsync(CancellationToken)的默認實現是同步的?
- 20. 爲什麼不調用主類中的默認構造函數?
- 21. 爲什麼默認的構造函數不適用於`vector :: emplace_back`
- 22. 爲什麼沒有默認的Java實現Delayed for DelayQueue?
- 23. 爲什麼使用TransactionScope的默認構造函數有害?
- 24. 爲什麼使用結構,而不是
- 25. 爲什麼Honeycomb中默認不啓用圖形加速?
- 26. 爲什麼這不被視爲默認的構造函數?
- 27. 爲什麼不應用默認樣式?
- 28. 默認實現
- 29. 爲什麼C++ POD結構中沒有默認散列?
- 30. 什麼數據結構是否將C#類「列表」默認爲?
也許,但是一個集合可能會更有效率,因爲當每個請求進來時add op都會調用。 – ivoryxiong
AFAIK它使用的所有List數據類型可以更改爲Set。我沒有看到訂單很重要的原因,也看不出重複。 –