我想知道解析 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);
}
通过以上,可以得出平均所用时间。