所以我有一个约8mb的文件,每个文件有6个整数,由一个空格分隔。Haskell更有效的方法来解析文件的位数
我解析这个电流的方法是:
tuplify6 :: [a] -> (a, a, a, a, a, a)
tuplify6 [l, m, n, o, p, q] = (l, m, n, o, p, q)
toInts :: String -> (Int, Int, Int, Int, Int, Int)
toInts line =
tuplify6 $ map read stringNumbers
where stringNumbers = split " " line
和映射toInts超过
liftM lines . readFile
将返回我的元组的列表。但是,当我运行这个时,它需要将近25秒来加载文件并解析它。任何方式,我可以加快这一点?该文件只是纯文本。
您能否提供更多信息:整个工作程序,输入,运行方式,编译方式(优化)还是在'ghci'中运行。你知道'Data.Bytestring'和'Data.Vector'。另外'读'是很慢,至少这是我所听到的。 – epsilonhalbe
另请参阅http://stackoverflow.com/questions/8366093/how-do-i-parse-a-matrix-of-integers-in-haskell/8366642 –