私はいくつかのPOCを行い、400アイテムの大きなセットを検索すると、それぞれ20アイテムの20セットを検索するよりも6〜7倍高速です。両方のケースでハッシュが使用されていますが、ループ処理だけではどのようにコストがかかりますか?さまざまな小さなHashSetと1つの大きなHashSetの検索の違いは何ですか?
1
A
答えて
0
同じ時間か20倍かかると思いますか? 20セットでは、平均で10.5ルックアップが必要です(アイテムが正確にそれらの1つに存在すると仮定した場合)ので、10.5のファクタが必要です。これはあなたの報告された要因の6-7に近いほど妥当です。コードを渡さなかったので、ベンチマークが失敗する箇所を指摘することはできません。しかし、how to benchmarkについて何かを読まなければ、誰もそれを正しく得ることはできません。
さらに詳しく知りたい場合は、詳細をお知らせください。
PS:20セットを使用することはほとんどありません。 A Map<Item, Integer>
は、セットパーティショニングの表現としてはるかに優れており、Set<Item>
(実際にはSet
はMap
で実装されています)と同じくらい速いです。
関連する問題
- 1. JavaのHashSetの検索
- 2. 大きなNでHashSetのパフォーマンスが悪いのはなぜですか?
- 3. HashSet - HashSet O(1)でオブジェクトにアクセスしていますか?
- 4. VS2010のさまざまなコマンドシェルの違いは何ですか?
- 5. 1つの大きなリリースまたはいくつかの小さなリリース?
- 6. さまざまなHTTPメソッドの違いは何ですか?
- 7. さまざまなAndroidテストケースクラスの違いは何ですか?
- 8. HashSetでオブジェクトを検索するには?
- 9. HashSetのHashSet c#要素が変更されます
- 10. 1つの大きなインクルードファイルまたはいくつかの小さいインクルードファイル?
- 11. 何が良いですか:1つの大きなスプライトまたは多くの小さな
- 12. 何が良いですか? 1つの大きなフィールドまたは多くの小さな?
- 13. 利用可能なさまざまなHttpClientの違いは何ですか?
- 14. 1つの大きなクエリと多くの小さなクエリ
- 15. 他のHashSetのキーとしてのHashSet
- 16. 奇妙なHashSetの行動
- 17. mule esbのさまざまなレベルのロギングの違いは何ですか?
- 18. 1つの検索ボックスを使用してデータベース内のさまざまなアイテムを検索します
- 19. 1つの大きなクエリまたはJTableのための小さなカップル?
- 20. Magentoのさまざまな* get helper *メソッドの違いは何ですか?
- 21. SQL 2008 R2のさまざまな文字型の違いは何ですか?
- 22. Javaのさまざまなスレッド同期オプションの違いは何ですか?
- 23. Spark 1.xと2.xのさまざまなsparkcontextsの相違
- 24. さまざまなマテリアルデザインフレームワークの違い
- 25. 1つの大きなテーブルまたは多数の小さなテーブル
- 26. 1つの大きなDAOまたは複数の小さなDAO?
- 27. 1つの大きなワークフローまたは複数の小さなワークフローを持つ方がよいですか?
- 28. HashSetのルックアップの複雑さ?
- 29. 1つの大きいオブジェクトまたは複数の小さなもの
- 30. 1つの大きなGitリポジトリまたは複数の小さいもの
おそらく20セットを探している場合は、1つではなく20までの検索が行われます。ハッシュ検索は高速です。なぜなら、ハッシュはオブジェクトの検索場所を示しているからです。ルックアップルックアップは、あなたが何かを見つけるまであらゆる場所を見ているので、遅いです。 – khelwood