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。我没有看到订单很重要的原因,也看不出重复。 –