我正在编写XLSX解析器。我的用例只是读取电子表格并将单元格值存储到某个对象结构中。
完成后,我想将我的代码的性能(内存和时间)与Apache Poi的性能进行比较。
为了进行时间比较,我正在考虑检查delta System.nanotime()。 我将在循环中多次解析xlsx,以确保执行时间大约为秒,然后是平均值。
我需要以下方面的帮助:
有人可以帮忙提供一些信息/建议吗?
答案 0 :(得分:2)
有没有更好的方法来比较执行时间?
在编写自己的微观基准时,您应该考虑这里解释的提示:How do I write a correct micro-benchmark in Java?。
阅读完该信息之后,你应该明白,那么简单可以自己编写微基准。这就是为什么有微型基准库可以简化这项工作,例如JUnitBenchmarks和Caliper。
如何将代码的内存占用量与Poi进行比较?
我使用了分析器来测量我开发的算法所使用的内存,但可能并非你正在寻找的内容。您可以使用的另一种方法是简单地计算runtime.totalMemory() - runtime.freeMemory()
。您可以在此处找到有关如何获取测试的内存占用的更多信息:
Java unit testing: how to measure memory footprint for method call