私はパッケージを書いた/書き直して、完全にテストしたいと思います。特に、大量のデータがパッケージにロードされると、クロールが遅くなります。私はテストのためにwiki.tcl.tkTCLパッケージのテスト。効率のために調整する
でコードを掲載している
あなたは12列& 10,000行を持っていることを前提としています。私が問題に遭遇した はTcl2ExXML::outputXML
です。 これをテストし、どこでクロールしているかを修正するにはどうしたらいいですか?
set Test_WB "";
set Test_WS "";
set ErrorHeadder "";
set ErrorText "";
set NormalHeadder "";
set DateCol "";
set Test_WB [Tcl2ExXML::CreateWorkbook "MassOrderLoad_[clock format [clock seconds] -format %Y%m%d%H%M%S]"]
set Test_WS [Tcl2ExXML::CreateWorkSheet $Test_WB "TestWS-[clock format [clock seconds] -format %Y-%m-%d]"]
set ErrorHeadder [Tcl2ExXML::CreateStyle $Test_WB -algnmt {-v bottom -h center} -font {-nm "Calibri" -ff "Swiss" -sz 14 -fC#FF0000 -b 1} -border {{top bottom left} -ls "continuous" -lw 3} -interior {-iC#DCE6F1 -ip "Solid"}]
set ErrorText [Tcl2ExXML::CreateStyle $Test_WB -algnmt {-v bottom -h center} -wrap 1 -font {-nm "Calibri" -ff "Swiss" -sz 11 -fC#FF0000}]
set NormalHeadder [Tcl2ExXML::CreateStyle $Test_WB -algnmt {-v bottom -h center} -font {-nm "Calibri" -ff "Swiss" -sz 14 -fC#000000 -b 1} -border {-bp {top bottom} -ls "continuous" -lw 3 -bp {left right} -ls "continuous" -lw 1} -interior {-iC#DCE6F1 -ip "Solid"}]
set DateCol [Tcl2ExXML::CreateStyle $Test_WB -datafmt ymd]
Tcl2ExXML::setColumnAttributes $Test_WS 26 -s $DateCol
Tcl2ExXML::setColumnAttributes $Test_WS 27 -s $DateCol
set RowNum [Tcl2ExXML::addRow $Test_WS -s $ErrorHeadder ERROR_MSG -s $NormalHeadder OPERATION \
-s $NormalHeadder RowData_1 -s $NormalHeadder RowData_2 \
-s $NormalHeadder RowData_3 -s $NormalHeadder RowData_4 \
-s $NormalHeadder RowData_5 -s $NormalHeadder RowData_6 \
-s $NormalHeadder RowData_7 -s $NormalHeadder RowData_8 \
-s $NormalHeadder RowData_9 -s $NormalHeadder RowData_10]
foreach Row $DataList
lassign $Row C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
set RowNum [Tcl2ExXML::addRow $Test_WS -s $ErrorText $C1 $C2 $C3 $C4 $C5 $C6 $C7 $C8 $C9 $C10 $C11 $C12]
}
set XML [Tcl2ExXML::outputXML $Test_WB]
puts "XML Created, Cleaning up."
puts $Chan $XML
close $Chan
Tcl2ExXML::DeleteWorkbook $Test_WB
あなたの 'outputXML'コマンドはXMLテキストを含む文字列を構築するために何千回も連続して' append'を呼び出してXMLを作成します。それはいつも時間がかかるでしょう。代わりに 'tDOM'のようなものを使用して、ドキュメントのDOM構造を構築し、完了したらXMLテキストを生成させます。 –
これをどのように実装するかを見ていきます。提案していただきありがとうございます。 – CK1