タスク: XML処理ライブラリの変更
Issue #355
resolved
前々から廃止が予告されていたstd.xml
が、いよいよdmd 2.092.0βで非推奨になりました。そのため、XML関係の処理を置換する必要があります。
D1+TangoからD2+Phobos移行当時、後々似たような事があるかもしれないと思って、XML関係の処理はcwx.xml
にラッパを用意する形で集約してあります。そのため、この中だけ書き換えればOKです。
移行先にはいくつか候補があります。
- 公式で推奨されているdxmlなど、サードパーティのライブラリに切り替える。
- undeaDを使う。
- 一時期パッチ当てのためにそうしていたように、
std.xml
をcwxeditorのコードベースに含める。
Phobosから除かれる理由として挙げていたように、そもそもstd.xml
は性能がよくありませんし、#319にあるようなアクセス違反の問題も抱えています。2.と3.を選択するとこれらの問題を引きずる事になります。
せっかくなので、ここは他のライブラリへの移行したいと考えています。まずはdxmlを試してみます。
Comments (4)
-
reporter -
reporter dxmlによる実装です。まだマージしていません。
性能を測ってみましたが、私の環境では読み込みでは約2倍、書き込みでは約10倍も速度が上がりました。
std.xml
の廃止理由としてパフォーマンスが挙がっていた事にも納得です。ついでに
#319の問題もおそらくなくなり、これまでハッシュ順で出力されていた属性の順序が固定される、テキスト中の"
がエンコードされなくなる(式が読みやすくなる)といった副次的な効果も期待できます。移行しない理由がありません。ただ、データ入出力のコア部分の変更になるので、たとえテスト版でもビルドしたものを公開するのはまだちょっと怖いです。個人的なリポジトリの方にビルドを公開しておくので、余裕のある方はシナリオのバックアップを取った上でテストをお願いします:
- https://bitbucket.org/k4nagatsuki/cwxeditor-k4nagatsuki/downloads/cwxeditor_fnine_20200513_x86.zip
- https://bitbucket.org/k4nagatsuki/cwxeditor-k4nagatsuki/downloads/cwxeditor_fnine_20200513_x64.zip
-
reporter しばらく試して大丈夫そうだったのでマージしました。
-
reporter - changed status to resolved
- Log in to comment
pull request #36
移行の準備としてて
cwx.xml
にテストを追加しました。