ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  396  : 記事  0  : コメント  1030  : トラックバック  66

ニュース

さて、今年の秋は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

というわけで試してみましょう。
ソースはこちら↓
public void DoTest() {
    this.CreateDocumentWithXmlDocument();
    this.CreateDocumentWithXDocument();
}

private void CreateDocumentWithXmlDocument() {
    Stopwatch sw = new Stopwatch();
    sw.Start();
    XmlImplementation impl = new XmlImplementation();
    XmlDocument doc = impl.CreateDocument();
    XmlElement root = doc.CreateElement("root");
    doc.AppendChild(root);
    for (int i = 0; i < 10000; i++) {
        XmlElement item = doc.CreateElement(string.Format("要素_{0:0000}", i));
        XmlAttribute attr = doc.CreateAttribute(string.Format("属性_{0:0000}", i));
        attr.Value = string.Format("属性値_{0:0000}", i);
        item.Attributes.Append(attr);
        XmlText text = doc.CreateTextNode(string.Format("要素内容_{0:0000}", i));
        item.AppendChild(text);
        root.AppendChild(item);
    }
    sw.Start();
    Console.WriteLine("With XmlDocument : {0}", sw.ElapsedTicks);
    doc.Save(@"D:\temp\XmlDocument.xml");
}

private void CreateDocumentWithXDocument() {
    Stopwatch sw = new Stopwatch();
    sw.Start();
    XDocument doc = new XDocument();
    XElement root = new XElement("root");
    doc.Add(root);
    for (int i = 0; i < 10000; i++) {
        XElement item = new XElement(string.Format("要素_{0:0000}", i));
        item.Value = string.Format("要素内容_{0:0000}", i);
        XAttribute attr =
            new XAttribute(string.Format("属性_{0:0000}", i), string.Format("属性値_{0:0000}", i));
        item.Add(attr);
        root.Add(item);
    }
    sw.Start();
    Console.WriteLine("With XDocument   : {0}", sw.ElapsedTicks);
    doc.Save(@"D:\temp\XDocument.xml");
}
んで、結果がコレ(三回分)
・With XmlDocument : 467673, 460969, 470390
・With XDocument : 546143, 579681, 589850
わずかながら、XmlDocument のほうがパフォーマンスいいですね。
まあ、10000回ループさせてこれなら XDocument での XML 生成も全然アリでしょう。
ちなみに XDocument は自動的に XML 宣言を追加してくれました。
投稿日時 : 2007年4月22日 20:47

コメント

# re: XDocument と XmlDocument はどちらがパフォーマンスが良いか? 2007/04/22 21:06 中博俊
断然速いでしょうね。
なぜなら今のビルドはいろんなものが入ってるはずだから。

# re: XDocument と XmlDocument はどちらがパフォーマンスが良いか? 2007/04/22 21:13 THREE-ONE
そうでしょうね
正式にリリースされたらどうなるかはわかりませんね
ま、どっちを使おうとも大差ないだろうなーとタカをくくってますが

Post Feedback

タイトル
名前
Url:
コメント: