小编And*_*sky的帖子

Haskell Hashtable性能

我试图在Haskell中使用hashtables包的哈希表,并发现我无法接近Python的性能.我怎样才能达到类似的性能?是否有可能给出当前的Haskell库和编译器?如果没有,那么潜在的问题是什么?

这是我的Python代码:

y = {}
for x in xrange(10000000):
    y[x] = x
print y[100]
Run Code Online (Sandbox Code Playgroud)

这是我相应的Haskell代码:

import qualified Data.HashTable.IO as H
import Control.Monad

main = do
  y <- H.new :: IO (H.CuckooHashTable Int Int)
  forM_ [1..10000000] $ \x -> H.insert y x x
  H.lookup y 100 >>= print
Run Code Online (Sandbox Code Playgroud)

这是另一个使用的版本Data.Map,对我来说比两者都慢:

import qualified Data.Map as Map
import Data.List
import Control.Monad
main = do
  let m = foldl' (\m x -> Map.insert x x m) Map.empty [1..10000000]
  print $ …
Run Code Online (Sandbox Code Playgroud)

haskell hashmap

7
推荐指数
2
解决办法
3022
查看次数

标签 统计

hashmap ×1

haskell ×1