Java 计算XML文件转换所用的时间

Java 计算XML文件转换所用的时间,java,xml,parsing,Java,Xml,Parsing,我正在为XML文件转换器创建一个工具。XML文件的模式正在更改,该工具将采用格式A的XML文件并将其转换为格式B(模式结构发生了巨大变化) 有没有办法计算文件转换所需的时间?是否有任何标准方法/公式?(取决于文件大小等) (文件大小可高达4GB)您可以在转换代码开始时以毫秒为单位存储系统时间 在转换代码完成时,再次以毫秒为单位计算系统时间,并减去它们以获得转换所花费的时间(以毫秒为单位) 确定两个尺寸等级,如 首先,确保您的转换是线性的:也就是说,输入的大小加倍会使时间长度加倍。(如果不是线性

我正在为XML文件转换器创建一个工具。XML文件的模式正在更改,该工具将采用格式A的XML文件并将其转换为格式B(模式结构发生了巨大变化)

有没有办法计算文件转换所需的时间?是否有任何标准方法/公式?(取决于文件大小等)


(文件大小可高达4GB)

您可以在转换代码开始时以毫秒为单位存储系统时间

在转换代码完成时,再次以毫秒为单位计算系统时间,并减去它们以获得转换所花费的时间(以毫秒为单位)


确定两个尺寸等级,如


  • 首先,确保您的转换是线性的:也就是说,输入的大小加倍会使时间长度加倍。(如果不是线性的,那么处理4Gb文件就不容易了)

    然后测量速度:比如10Mb/秒。实现的速度将在很大程度上取决于转换的性质、编码的效率以及所使用的技术

    然后根据文件大小进行推断


    如果您需要处理高达4GB的大小,那么最大的问题是您需要使用流式转换(一种不能将整个文件保存在内存中的转换),这(a)限制了您对技术的选择(很少有XSLT处理器提供流式处理能力,而且这些处理器确实需要花钱),以及(b)使转换更难编码。

    是的,这是一种方法,但只有在操作完成后才可能实现。实际上,我需要的是类似的东西:当我们从网上下载文件时,即使下载正在进行,我们也会收到一条消息,说还有40分钟等。我需要类似的东西,这取决于网络速度和文件大小。在这种情况下,您需要做的是将文件大小除以网络速度,以获得剩余时间。
    public void yourConversionMethod(){
          //start of method
          long start = System.currentTimeMillis();
          ....
          ....
          //your conversion code
          ...
          ...
          //end of method
          long end = System.currentTimeMillis();
    
          long conversionTime = end - start;
    }