結論はタイトルどおりです。
実際にコードを書いて
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