海量データ処理の最適化

5539 ワード

今回書いた宝くじの比較アルゴリズムは、4000万個以上の数字から3万元を超えて、それぞれ4000万元と30万元を取って、50万個の数字を比較するアルゴリズムと5回走って40秒以上かかります。効率が低いと感じて、海量データ処理に関する文章をいくつか探しました。最適化の方法があるかを見てみたいです。
1.十個の海量データの面接問題と十大方法のまとめ:  http://blog.csdn.net/v_jurlyuv/articale/detail/6279498
2.99%の大海量データをどのように処理しますか?  http://blog.csdn.net/v_jurlyuv/articale/detail/7382693
3.Bloom Filterワンストップ教程:  http://blog.csdn.net/v_jurlyuv/articale/detail/7382693
n個の異なる乱数をとることについて。最近stackoverflowでこの質問を見ましたが、ルビーの一般的な方法は以下の通りです。r = [ ] while r.length < v = rand(max) r << v unless r.include?endまたは

(
1
..
max
)
・to_a.
shuffle

0
を選択します。
n

nとmaxが共に百万レベルであることを考慮すると、ハッシュ速度で明らかに速くなる。hash = {} r = [ ] while hash.length < a = rand(max) if !hash_has_key? (a) hash(a) = :ok end end  r = hash.keys