- - PR -
XML文書作成時のパフォーマンスについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-02-26 21:32
山中です。こんばんは。
# Javaの会議室とXMLの会議室のどちらに書こうか悩みましたが... Databaseの値を読み取りながら、新規にXMLドキュメントを作成しようと思っています。 下記のようなコードで書いているのですが、どうもパフォーマンスが芳しくなく、調べてみると、Elementを追加するところあたりに、オーバーヘッドがかかっているよう(※)なのです。 ※ System.out.printlnでいろんなところで、時間を書き出して確認しました。 そこで、パフォーマンスを改善したいと悩んでいるのですが、どなたかパフォーマンスを改善するためのアドバイス頂戴できないでしょうか? なお、XMLのハンドリングにはXerces Java 1.44 を使っています。
| ||||
|
投稿日時: 2002-02-27 02:11
こんばんわ
XMLのテキストを得るだけで, CSVテキスト程度の浅い構造なら テキストの文字列展開付き、あたりが最高速では。 sprintf とか "固定部" + kahenSTR ... StringBuffer とか。 (いまさらLISPでcons みたいなのをチマチマ書きたくない 構造操作が必要なら、DOM かもしれないが、それでも tree型、tree定数 tree演算子くらいプログラム言語に入ってないと行数増えすぎ 正規表現置換のように、1行で書けるXPath置換もほしいです) 次に速いのは、SAX イベントストリームを起こして、SAXライター で書き出す。 あと、構造の固定度が高ければ、最初にテンプレートのDOMtreeを作って そこにテキスト値をはめ込んで完成させる、とか、それのXSLT版をする (スタイルシートをキャッシュしてそこにパラメータ値はめ込みで即変換) 枠の固定部は再使用できるように。or 空枠複製で使い捨てとか さて、DOMで組み立てずに、RELAXER などのマップ/バインディングで プログラム言語で組み立て、まとめてテキスト出力の形ではどうか? 0.5DOM速、くらいでしょうか。 テンプレート・エンジンとか言う、タグテキストを作る汎用もあるようす 巨大な sprintf として動作するものは使えます、 Xi,JSPなどの可変部埋め込みとかの系統、 Velocity http://www.ingrid.org/jajakarta/velocity/velocity-1.1/docs-ja/user-guide.htmll http://jakarta.apache.org/velocity/user-guide.html [ メッセージ編集済み 編集者: MMX 編集日時 2002-03-23 09:05 ] |
1