C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: XmlSerializer.Deserializeを速くする


(過去ログ 89 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■52838 / inTopicNo.1)  XmlSerializer.Deserializeを速くする
  
□投稿者/ けんと (1回)-(2010/08/25(Wed) 15:05:15)

分類:[C#] 

C#でXMLファイルを用いてファイルの保存を行なっています。

XmlSerializer.DeserializeメソッドでXMLファイルをデシリアライズしていますが、コレが以外と時間がかかります。

数十件なら問題ないですが、数千件となると遅さが目立ちます。

何か早くする方法はないでしょうか?
引用返信 編集キー/
■52850 / inTopicNo.2)  Re[1]: XmlSerializer.Deserializeを速くする
□投稿者/ れい (956回)-(2010/08/25(Wed) 21:56:59)
No52838 (けんと さん) に返信
> 何か早くする方法はないでしょうか?

PCを速くする
件数を減らす
メンバを減らす
XmlSerializerを使わない

などなど、いろいろありますが。

速ければ速いほどいいのは当然なので、
何の前提も変えずに、速くなるのであればもうとっくにそうなってるはずですね。

どの程度の速度が目標なのかとか、
実際にはどの程度の速度になってしまっているのかとか、
どういった状況で速くしたいのかとか、

もっと具体的に示さないと情報が得られないと思いますよ。
引用返信 編集キー/
■52853 / inTopicNo.3)  Re[1]: XmlSerializer.Deserializeを速くする
□投稿者/ aetos (325回)-(2010/08/26(Thu) 01:39:58)
No52838 (けんと さん) に返信
> C#でXMLファイルを用いてファイルの保存を行なっています。
>
> XmlSerializer.DeserializeメソッドでXMLファイルをデシリアライズしていますが、コレが以外と時間がかかります。
>
> 数十件なら問題ないですが、数千件となると遅さが目立ちます。
>
> 何か早くする方法はないでしょうか?

プロジェクトのプロパティの「ビルド」のページにある「シリアル化アセンブリの生成」を「オン」にしてみるとか。
引用返信 編集キー/
■52854 / inTopicNo.4)  Re[1]: XmlSerializer.Deserializeを速くする
□投稿者/ やじゅ (1706回)-(2010/08/26(Thu) 01:39:58)
やじゅ さんの Web サイト
No52838 (けんと さん) に返信
> C#でXMLファイルを用いてファイルの保存を行なっています。
> 数十件なら問題ないですが、数千件となると遅さが目立ちます。
> 何か早くする方法はないでしょうか?

BeginLoadDataメソッドとEndLoadDataメソッドを使用してみるとか
http://daisuke-watanabe.com/993/
引用返信 編集キー/
■52867 / inTopicNo.5)  Re[2]: XmlSerializer.Deserializeを速くする
□投稿者/ けんと (2回)-(2010/08/26(Thu) 11:22:41)
No52850 (れい さん) に返信
> ■No52838 (けんと さん) に返信
>>何か早くする方法はないでしょうか?
>
> PCを速くする
> 件数を減らす
> メンバを減らす
> XmlSerializerを使わない
>
> などなど、いろいろありますが。
>
> 速ければ速いほどいいのは当然なので、
> 何の前提も変えずに、速くなるのであればもうとっくにそうなってるはずですね。
>
> どの程度の速度が目標なのかとか、
> 実際にはどの程度の速度になってしまっているのかとか、
> どういった状況で速くしたいのかとか、
>
> もっと具体的に示さないと情報が得られないと思いますよ。

おっしゃるとおりです。
情報不足でした。

現状はPCの買い替えはなしで、データの項目数も減らさず、XmlSerializerを使用していくという方向で開発を行なっています。

速度的には現在の処理時間の約半分の時間を考えてます。
引用返信 編集キー/
■52871 / inTopicNo.6)  Re[2]: XmlSerializer.Deserializeを速くする
□投稿者/ todo (42回)-(2010/08/26(Thu) 12:12:31)
少しだけ速くなりそう

xmlSerializerによるXML出力時にnamespaceを付与しない
http://d.hatena.ne.jp/tekk/20090712/1247405287
引用返信 編集キー/
■52879 / inTopicNo.7)  Re[3]: XmlSerializer.Deserializeを速くする
□投稿者/ todo (43回)-(2010/08/26(Thu) 13:49:12)
> XmlSerializerを使わない

DataContractSerializerが速い?

http://neue.cc/2010/05/29_261.html
引用返信 編集キー/
■52927 / inTopicNo.8)  Re[1]: XmlSerializer.Deserializeを速くする
□投稿者/ すなふきぬ (31回)-(2010/08/28(Sat) 03:10:44)
No52838 (けんと さん) に返信
> C#でXMLファイルを用いてファイルの保存を行なっています。
>
> XmlSerializer.DeserializeメソッドでXMLファイルをデシリアライズしていますが、コレが以外と時間がかかります。
>
> 数十件なら問題ないですが、数千件となると遅さが目立ちます。
>
> 何か早くする方法はないでしょうか?

数千件ってのが、DB代わりにXMLを使用してるっぽいので・・・。
テーブルの構造が決まっているなら、構造部分とデータ部を分離して保存・読み込みさせるとかって方法もありかも。

他のサービスや、アプリケーションと連携させているなら上記の方法だと仕様変更等必要になるかもしれませんが。
XMLの形式も決まっているのであれば、自分で出力するのも一つの方法です。

汎用的なXmlSerializerは、どうしても速度が犠牲になっているっぽいので。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -