File: Memory.hs

package info (click to toggle)
haskell-xeno 0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 212 kB
  • sloc: haskell: 1,324; xml: 120; makefile: 7
file content (36 lines) | stat: -rw-r--r-- 1,231 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE BangPatterns #-}

-- | Benchmark memory allocations.

module Main where

import           Control.DeepSeq
import qualified Data.ByteString as S
import qualified Text.XML.Hexml as Hexml
import           Weigh
import qualified Xeno.DOM
import qualified Xeno.DOM.Robust
import qualified Xeno.SAX

main :: IO ()
main = do
  f4kb <- S.readFile "data/books-4kb.xml"
  f31kb <- S.readFile "data/text-31kb.xml"
  f211kb <- S.readFile "data/fabricated-211kb.xml"
  mainWith
    (do func "4kb_hexml_dom" Hexml.parse f4kb
        func "4kb_xeno_sax" Xeno.SAX.validate f4kb
        func "4kb_xeno_dom" Xeno.DOM.parse f4kb
        func "4kb_xeno_dom-with-recovery" Xeno.DOM.Robust.parse f4kb
        func "31kb_hexml_dom" Hexml.parse f31kb
        func "31kb_xeno_sax" Xeno.SAX.validate f31kb
        func "31kb_xeno_dom" Xeno.DOM.parse f31kb
        func "31kb_xeno_dom-with-recovery" Xeno.DOM.Robust.parse f31kb
        func "211kb_hexml_dom" Hexml.parse f211kb
        func "211kb_xeno_sax" Xeno.SAX.validate f211kb
        func "211kb_xeno_dom" Xeno.DOM.parse f211kb
        func "211kb_xeno_dom-with-recovery" Xeno.DOM.Robust.parse f211kb)

instance NFData Hexml.Node where
  rnf !_ = ()