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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
# -*- tcl -*-
#
# This file contains benchmarks for DOM doc creation with dom and tdom
#
# (c) 2018 Rolf Ade <rolf@pointsman.de>
#
# ### ### ### ######### ######### ######### ###########################
## Setting up the environment ...
package require tdom
# ### ### ### ######### ######### ######### ###########################
## Benchmarks.
bench -desc "dom mondial-europe.xml" -iters 20 -ipre {
set fd [open ../tests/data/mondial-europe.xml]
} -body {
set doc [dom parse -channel $fd]
} -ipost {
close $fd
$doc delete
}
bench -desc "tdom mondial-europe.xml" -iters 20 -ipre {
set p [expat]
tdom $p enable
} -body {
$p parsefile ../tests/data/mondial-europe.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p free
}
bench -desc "tdom mondial-europe.xml / reuse parser" -iters 20 -pre {
set p [expat]
tdom $p enable
} -body {
$p parsefile ../tests/data/mondial-europe.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p reset
} -post {
$p free
}
bench -desc "dom REC-xslt-19991116.xml" -iters 20 -ipre {
set fd [open ../tests/data/REC-xslt-19991116.xml]
} -body {
set doc [dom parse -channel $fd]
} -ipost {
close $fd
$doc delete
}
bench -desc "tdom REC-xslt-19991116.xml" -iters 20 -ipre {
set p [expat]
tdom $p enable
} -body {
$p parsefile ../tests/data/REC-xslt-19991116.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p free
}
bench -desc "tdom REC-xslt-19991116.xml / reuse parser" -iters 20 -pre {
set p [expat]
tdom $p enable
} -body {
$p parsefile ../tests/data/REC-xslt-19991116.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p reset
} -post {
$p free
}
if {![catch {package require tnc}]} {
proc extresolver {base systemId publicId} {
switch $publicId {
"-//W3C//DTD Specification V2.0//EN" {
set fd [open [file join [file dir [info script]] \
data/xmlspec-v20.dtd]]
set xmlspec [read $fd]
close $fd
return [list "string" "" $xmlspec]
}
default {
puts stderr "Unexpected systemId '$systemId'"
return ""
}
}
}
bench -desc "tdom REC-xslt-19991116.xml / tnc " -iters 20 -ipre {
set p [expat -externalentitycommand extresolver \
-paramentityparsing always]
tdom $p enable
tnc $p enable
} -body {
$p parsefile ../tests/data/REC-xslt-19991116.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p free
}
bench -desc "tdom REC-xslt-19991116.xml / tnc / reuse parse" -iters 20 -pre {
set p [expat -externalentitycommand extresolver \
-paramentityparsing always]
tdom $p enable
tnc $p enable
} -body {
$p parsefile ../tests/data/REC-xslt-19991116.xml
set doc [tdom $p getdoc]
} -ipost {
$doc delete
$p reset
$p configure -paramentityparsing always
} -post {
$p free
}
}
|