File: tdomcmd.bench

package info (click to toggle)
tdom 0.9.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 7,260 kB
  • sloc: ansic: 56,762; xml: 20,797; tcl: 3,618; sh: 658; makefile: 83; cpp: 30
file content (131 lines) | stat: -rw-r--r-- 3,155 bytes parent folder | download | duplicates (4)
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
    }
}