KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a set of binary records packed into a file and I am reading them using Data.ByteString.Lazy and Data.Binary.Get. With my current implementation an 8Mb file takes 6 seconds to parse. import qualified Data.ByteString.Lazy as BL import Data.Binary.Get data Trade = Trade { timestamp :: Int, price :: Int , qty :: Int } deriving (Show) getTrades = do empty <- isEmpty if empty then return [] else do timestamp <- getWord32le price <- getWord32le qty <- getWord16le rest <- getTrades let trade = Trade (fromIntegral timestamp) (fromIntegral price) (fromIntegral qty) return (trade : rest) main :: IO() main = do input <- BL.readFile "trades.bin" let trades = runGet getTrades input print $ length trades What can I do to make this faster?
Tags (comma-separated)
Save Edits
Cancel