2014-05-15 32 views
0

我正在編寫一個XLSX分析器。我的用例只是讀取電子表格並將單元格值存儲到某個對象結構中。我的代碼和apache poi之間的內存和執行時間比較

一旦完成,我想比較我的代碼的性能(內存和時間)與Apache Poi的性能(內存和時間)。

對於時間比較,我想檢查三角洲System.nanotime()。 我將在一個循環中多次解析xlsx,以確保執行時間以秒爲單位,然後是平均值。

我需要用以下幫助:

  1. 是否有更好的方法來比較執行時間?
  2. 如何比較我的代碼與Poi的內存佔用量?

請問有人能提供一些資料/建議嗎?

+0

是你的XLSX解析器使用Apache POI還是完全不同,你想用你的代碼與POI的執行時間進行基準測試? –

+0

您使用的是Eclipse嗎? – user184994

+0

@LuiggiMendoza我通過普通的香草薩克斯解析器解析。不使用任何apache poi類。是的,我正在使用eclipse。 – Hirak

回答

2

是否有更好的方法來比較執行時間?

在編寫自己的微基準測試時,應該考慮這裏解釋的技巧:How do I write a correct micro-benchmark in Java?

閱讀完這些信息後,您應該明白這不是那麼容易自己寫微基準。這就是爲什麼有微型基準庫可以簡化這項工作,如JUnitBenchmarksCaliper

如何比較我的代碼與Poi的內存佔用量?

我已經使用分析器來衡量我開發的算法使用的內存,但可能這不是你要找的。另一種方法是簡單計算runtime.totalMemory() - runtime.freeMemory()。你可以在這裏找到更多關於如何在你的測試中獲得內存佔用空間的信息: Java unit testing: how to measure memory footprint for method call

+0

我不想重新發明......所以謝謝指出圖書館。它是在「阿爾法」通過......你認爲這應該是一個問題? – Hirak

+0

@Hirak好吧,我用它來幫助我對我的算法的性能進行基準測試。我還使用了一個分析器來衡量應用程序運行時所用的時間,結果相似,所以IMO框架的運行情況與預期的一樣好。還有其他框架可以在Java中進行微型基準測試,但我在寫答案時沒有找到鏈接。 –

+0

謝謝,我會試一試。 – Hirak