My Tcl environment:
==================
Win NT 4.0 SP 6
TclPro 1.4
TclDom 2.0 Theta
TclLib 1.2
TclXml 2.1 Theta
I don't know why, but the following script produces a memory usage of over
23MB.I do the following (script & data file attached):
LOOP 500 times
CALL LoadRawData
END LOOP
PROC LoadRawData
RAED data to local variables from a text file
CALL createXMLString
END PROC
after I "serialize my XML-string" in createXMLString I do a
::dom::DOMImplementation destroy <myDocument>
, but after the script finishes, there seems to be a lot of data in ::dom::.
Can anybody reproduce that ? Have I forgot something ? Any hints ?
Thanks a lot
Alexander
::dom::DOMImplementation destroy <doc>
after each iteration. There is no difference in memory usage weather you use
::dom::DOMImplementation destroy <doc> or not.
Alexander
Alexander Eisenhuth wrote:
> ------------------------------------------------------------------------
>
> source tkcon.tcl
> tkConAttach Main
>
> package require dom
>
> proc LoadRawData {FName} {
>
> # 1) load data
> set lIn [open $FName "r"]
> gets $lIn lTm
> gets $lIn lCellTyp
> gets $lIn lTempMode
> gets $lIn lVcell
> gets $lIn lIcell
> gets $lIn lIref
> gets $lIn lTref
> gets $lIn lTEnv
> gets $lIn lTPyra
> close $lIn
>
> set lDat [createXMLString $lTm $lCellTyp $lTref $lTEnv $lTPyra $lVcell $lIcell $lIref 0.1 "0.0 0.0" "0.0 0.0" ]
> # set lOut [open d:/2002_xxx.xml "w+"]
> # puts $lOut $lDat
> # close $lOut
> }
>
> proc createXMLString {ts celltyp tref tamb tpyra ucellF icellF irefF irefR ucellR icellR} {
> set lDoc [::dom::DOMImplementation create]
> set lRoot [::dom::document createElement $lDoc "IVS-Data_V1.4"]
> set lMeasAttribNode [::dom::document createElement $lRoot MeasAttrib]
> set lFMeasNode [::dom::document createElement $lRoot ForwardMeas]
> set lRMeasNode [::dom::document createElement $lRoot ReverseMeas]
> # - meassurement attributes
> ::dom::element setAttribute $lMeasAttribNode CellTyp $celltyp
> ::dom::element setAttribute $lMeasAttribNode MeasTm $ts
> ::dom::element setAttribute $lMeasAttribNode TempEnv $tamb
> ::dom::element setAttribute $lMeasAttribNode TempRef $tref
> ::dom::element setAttribute $lMeasAttribNode TempPyra $tpyra
> # - forward meassurement
> ::dom::element setAttribute $lFMeasNode Ucell $ucellF
> ::dom::element setAttribute $lFMeasNode Icell $icellF
> ::dom::element setAttribute $lFMeasNode Iref $irefF
> # - reverse meassurement
> ::dom::element setAttribute $lRMeasNode Iref0 $irefR
> ::dom::element setAttribute $lRMeasNode Ucell $ucellR
> ::dom::element setAttribute $lRMeasNode Icell $icellR
>
> set lRet [::dom::DOMImplementation serialize $lDoc -newline $lRoot -newline $lFMeasNode -newline lRMeasNode]
> ::dom::DOMImplementation destroy $lDoc
> return $lRet
> }
>
> proc readXMLFile {filename} {
> set lIn [open $FName "r"]
> set lXmlData [read $lIn]
> close $lIn
> set lDoc [::dom::DOMImplementation parse $lXmlData]
> }
>
> for {set i 0} {$i < 500} {incr i} {
> LoadRawData "d:/SmallRaw/20001219_160939.tdf"
> }
> pack [button .b -text "exit" -command "exit"]
>
>
>
> ------------------------------------------------------------------------
>
> 977238579
> NV)(Template_100
> 22.0
> -8.327637e-001 -8.203125e-001 -8.071289e-001 -7.858887e-001 -7.734375e-001 -7.543945e-001 -7.338867e-001 -7.214355e-001 -7.155762e-001 -7.075195e-001 -6.862793e-001 -6.708984e-001 -6.540527e-001 -6.489258e-001 -6.408691e-001 -6.328125e-001 -6.218262e-001 -6.057129e-001 -5.939941e-001 -5.830078e-001 -5.712891e-001 -5.617676e-001 -5.515137e-001 -5.397949e-001 -5.302734e-001 -5.178223e-001 -4.819336e-001 -4.541016e-001 -4.255371e-001 -3.962402e-001 -3.676758e-001 -3.398438e-001 -3.112793e-001 -2.819824e-001 -2.526855e-001 -2.226563e-001 -1.970215e-001 -1.706543e-001 -1.413574e-001 -1.113281e-001 -8.349609e-002 -6.005859e-002 -3.515625e-002 -1.171875e-002 1.538086e-002 4.028320e-002 6.591797e-002 9.082031e-002 1.164551e-001 1.428223e-001 1.655273e-001 1.896973e-001 2.160645e-001 2.409668e-001 2.644043e-001 2.900391e-001 3.149414e-001 3.369141e-001 3.596191e-001 3.830566e-001 4.050293e-001 4.167480e-001 4.262695e-001 4.350586e-001 4.416504e-001 4.533691e-001 4.628906e-001 4.6948
24e-001 4.775391e-001 4.863281e-001 4.965820e-001 5.017090e-001 5.090332e-001 5.170898e-001 5.258789e-001 5.317383e-001 5.383301e-001 5.449219e-001 5.537109e-001 5.603027e-001 5.654297e-001 5.712891e-001 5.800781e-001 5.866699e-001 5.917969e-001 5.969238e-001 6.049805e-001 6.123047e-001 6.152344e-001 6.210938e-001 6.284180e-001 6.342773e-001 6.386719e-001 6.445313e-001 6.503906e-001 6.562500e-001 6.613770e-001 6.665039e-001 6.716309e-001 6.782227e-001
> 9.432936e-001 1.108238e+000 1.249619e+000 1.355654e+000 1.504890e+000 1.654125e+000 1.803360e+000 1.901542e+000 2.027213e+000 2.121467e+000 2.207867e+000 2.274630e+000 2.341393e+000 2.412084e+000 2.459211e+000 2.474920e+000 2.490629e+000 2.490629e+000 2.506338e+000 2.529901e+000 2.541683e+000 2.565246e+000 2.569173e+000 2.565246e+000 2.577028e+000 2.588810e+000 2.580955e+000 2.584882e+000 2.588810e+000 2.573101e+000 2.561319e+000 2.553464e+000 2.545610e+000 2.537755e+000 2.522046e+000 2.506338e+000 2.502410e+000 2.490629e+000 2.482774e+000 2.463138e+000 2.443502e+000 2.435647e+000 2.416011e+000 2.388520e+000 2.368884e+000 2.345320e+000 2.313902e+000 2.290339e+000 2.262848e+000 2.231430e+000 2.203940e+000 2.176449e+000 2.141104e+000 2.113613e+000 2.078268e+000 2.038995e+000 1.991868e+000 1.956523e+000 1.905469e+000 1.838706e+000 1.768015e+000 1.720888e+000 1.685543e+000 1.638416e+000 1.587362e+000 1.528453e+000 1.485254e+000 1.430272e+000 1.363509e+000 1.288891e+000 1.229983
e+000 1.167147e+000 1.084674e+000 9.904205e-001 9.158028e-001 8.411852e-001 7.390768e-001 6.330411e-001 5.348600e-001 4.445333e-001 3.384977e-001 2.167530e-001 1.028629e-001 7.544922e-004 -1.170629e-001 -2.466620e-001 -3.762611e-001 -4.901513e-001 -6.118959e-001 -7.493495e-001 -8.868031e-001 -1.012475e+000 -1.142074e+000 -1.291309e+000 -1.436618e+000 -1.570144e+000 -1.703670e+000 -1.852906e+000 -2.002141e+000 -2.147449e+000
> 2.519531e-001 3.046875e-001 3.437500e-001 3.720703e-001 4.179688e-001 4.541016e-001 4.960938e-001 5.341797e-001 5.644531e-001 5.898438e-001 6.132813e-001 6.376953e-001 6.582031e-001 6.777344e-001 6.894531e-001 6.943359e-001 6.992188e-001 6.992188e-001 7.050781e-001 7.109375e-001 7.158203e-001 7.226563e-001 7.226563e-001 7.236328e-001 7.265625e-001 7.275391e-001 7.304688e-001 7.343750e-001 7.353516e-001 7.324219e-001 7.304688e-001 7.285156e-001 7.265625e-001 7.236328e-001 7.207031e-001 7.177734e-001 7.167969e-001 7.138672e-001 7.109375e-001 7.070313e-001 7.041016e-001 7.021484e-001 7.001953e-001 6.962891e-001 6.923828e-001 6.894531e-001 6.835938e-001 6.796875e-001 6.767578e-001 6.728516e-001 6.689453e-001 6.650391e-001 6.621094e-001 6.582031e-001 6.552734e-001 6.513672e-001 6.484375e-001 6.445313e-001 6.406250e-001 6.367188e-001 6.318359e-001 6.279297e-001 6.230469e-001 6.191406e-001 6.152344e-001 6.113281e-001 6.074219e-001 6.025391e-001 5.996094e-001 5.957031e-001 5.917969
e-001 5.888672e-001 5.839844e-001 5.800781e-001 5.771484e-001 5.732422e-001 5.693359e-001 5.654297e-001 5.615234e-001 5.576172e-001 5.537109e-001 5.507813e-001 5.468750e-001 5.429688e-001 5.400391e-001 5.371094e-001 5.332031e-001 5.292969e-001 5.263672e-001 5.224609e-001 5.195313e-001 5.156250e-001 5.117188e-001 5.078125e-001 5.048828e-001 5.009766e-001 4.970703e-001 4.941406e-001 4.902344e-001 4.873047e-001
> 31.8
> 28.8
> 28.8
>
>