haskell, win32: out of memory
От: trop Россия  
Дата: 01.06.10 07:26
Оценка:
программа работает нормально с небольшими файлами,
но завершается с out of memory на файле в 60Мб ->
согласно task manager: в первые 20 сек сжирает всю свободную память ~1,5 Гб,
затем начинает высвобождать до ~30-60 Мб, и через 5 мин завершается с ошибкой.

как исправить такое поведение?

собирается так: ghc --make md5.hs
import qualified Data.Digest.MD5 as MD5
import qualified Data.ByteString.Lazy as B
import Text.Printf
import System.Environment
                          
main = do
  (fname:_) <- getArgs
  bs <- B.readFile fname
  md5 <- hash_MD5 bs
  mapM_ (printf "%02x") md5 
  return ()
  
hash_MD5 :: B.ByteString -> IO [Int]
hash_MD5 bs = do
  let octs = MD5.hash $ map fromIntegral $ B.unpack bs
  return $ map fromIntegral octs
-
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.