結論はタイトルどおりです。

実際にコードを書いて

1.ObjectInputStream/ObjectOutputStreamを使う
2.BufferdReaderで読み込み,XmlPullParserで解析/XmlSerializerでXML化し、BufferedWriterで書き込み
3.SQLiteを使って読み込み/書き込み

で時間を測って見たところ、読み込み、書き込みともにSQLiteを使うのが一番早かったです。
特に、読み込み処理での早さは群を抜いてました。

以下、結果です。

1000バイトのテキストデータを持つオブジェクトを50件処理した時間(ms)
1 2 3 4 5 平均

writeObject 510 341 353 360 451 403

writeXML 612 504 536 523 523 539.6

writeSQLite 553 290 283 304 318 349.6

readObject 423 314 317 208 309 314.2

readXML 258 173 269 180 177 211.4

readSQLite 52 47 51 149 147 89.2








1000バイトのテキストデータを持つオブジェクトを500件処理した時間
1 2 3 4 5 平均

writeObject 3756 3726 3607 3710 3663 3692.4

writeXML 6220 5477 6202 6392 8021 6462.4

writeSQLite 1863 2720 3577 2561 2908 2725.8

readObject 2788 2574 2552 2542 2398 2570.8

readXML 2139 2092 2098 2038 2061 2085.6

readSQLite 644 583 585 576 569 591.4

テストに使用したコードは,githubにあげていますので、よろしければ見てみてください.

http://github.com/kakkyz81/SerializePerformanceCheck

Pocket

Comments are closed.