XML ファイルの解析にかかった時間を知りたいです。私は SAX パーサーを使用しています。(解析が完了した後) かかった時間を知りたくないので、 System.nanoTime() または System.currentTimeMillis() を使用できません
解析にかかる時間を事前に見積もるにはどうすればよいですか? (おそらくファイルのサイズに基づいています)
これは難しい質問です。簡単に言えば、正確にどれくらいの時間がかかるかを前もって知ることはできません。
最善の策は、1K ファイル、10K ファイル、100K ファイル、1MB などを解析してそれらの間を補間するのにかかる時間についていくつかのベンチマークを実行して、所要時間を見積もることです。(1MB が妥当な上限であると仮定)
ただし、この見積もりは、特定のハードウェア/ソフトウェア構成のコンピューターでのみ有効です。意味のある方法で一般化することはできません。
できることは、サンプルの 1 MB ファイルを取得して解析することです。以下のように時間を記録します。
int testcases = 10; // Configure it to find the average
for(int i=0;i<testcases;i++)
{
long startTime = System.currentTimeMillis();
// Call a method that performs parsing of the XML.
// Method Returns once parsing is done.
long endTime = System.currentTimeMillis();
long delta = endTime - startTime;
System.out.println("Average Time taken: " + delta);
}
以上より、平均所要時間を算出することができます。