2011-03-25 2 views
2

私はMonoTouchのiOSアプリケーションを使用しています。このアプリケーションでは、Webサービスから多数の人物をデシリアライズしています。 XMLはかなりシンプルです。ルートノードは人のリストであり、各人は5つのプロパティしか持っていません。リストはかなり大きいです...約1000人。.NET XmlSerializerクラスを使用している場合、他の誰かがMonoTouchで低速デシリアライズを経験しましたか?

iPhoneのシミュレータでデシリアライズを実行すると、操作には約1秒しかかかりません。私のiPhone 3GSで実行すると、約13秒かかります。もちろん、シムはx86コードを実行しており、アプリケーションはARMコードで実行されています。さらに、利用可能な馬力はシムよりも電話で少なくなります。しかし、それは本当にそれは多くの違いを作るだろうか???

他の誰かがMonoTouchで低速の.NETシリアル化を経験しましたか?誰も原因を知っていますか?もしそうなら、あなたはそれに対処する方法を見つけましたか?多分、スレッドや多分別のシリアル化ライブラリですか?

答えて

6

はい、それは長くかかります。シミュレータでは、コードをジッタで処理し、特殊なデシリアライザを構築することができます。デバイスでは、デシリアライズツリー全体を解釈する必要があります。バイナリのシリアライゼーションを試してみてください。これはもっと良いはずですが、オブジェクトモデルをsqliteに移動するのが最善です。

+0

これは正しいと思われます。代わりに、着信XMLに合わせてカスタム化されたLINQ-to-XMLコードを書きました。とにかく拡張可能ではありませんが、私はこのサービスに来るデータに大きな変化はありません。 – NovaJoe

関連する問題