Java 代码优化;测量代码段之间的时间

Java 代码优化;测量代码段之间的时间,java,time-measurement,Java,Time Measurement,我想看看在我的android应用程序中执行某个方法需要多长时间。我的第一个想法是这样做: Date date1 = new Date(); doStuff(); Date date2 = new Date(); //compare date difference in ms 但对于初学者来说,日期对象似乎没有.getmillizes(),这正是我想要的。有没有更简单和/或更好的方法来解决这个问题 谢谢您可能需要使用System.nanoTime()来计算时间,因为它使用了可用的最高精度计

我想看看在我的android应用程序中执行某个方法需要多长时间。我的第一个想法是这样做:

Date date1 = new Date();

doStuff();

Date date2 = new Date();

//compare date difference in ms
但对于初学者来说,日期对象似乎没有
.getmillizes()
,这正是我想要的。有没有更简单和/或更好的方法来解决这个问题


谢谢

您可能需要使用
System.nanoTime()
来计算时间,因为它使用了可用的最高精度计时器。测试代码效率时要做的另一件事是不只是运行一次,而是重复运行,并以平均时间作为估计值。从长远来看,这会提供更好的结果,因为如果其他程序也在尝试运行,CPU使用率可能会急剧上升。

您可能希望使用
System.nanoTime()
进行时间计数,因为它使用了可用的最高精度计时器。测试代码效率时要做的另一件事是不只是运行一次,而是重复运行,并以平均时间作为估计值。从长远来看,这会提供更好的结果,因为如果其他程序也尝试运行,CPU使用率可能会急剧上升。

System.currentTimeMillis()有什么问题


System.currentTimeMillis()有什么问题


您可以使用Android评测工具,当应用程序在模拟器中运行时,它可以在一个漂亮的图形视图中完成这类工作


这里有更多信息:

你可以使用Android评测工具,当应用程序在模拟器中运行时,它可以在一个漂亮的图形视图中完成这类工作


此处的更多信息:

您可以使用
System.currentTimeMillis()
您是否查看了
日期可用的方法
System.nanoTime
无论如何都是一种更好的方法,或者
System.currentTimeMillis()
,但无论哪种方法,您都应该找到
Date.getTime()
。顺便说一句,对于基准测试,我认为如果nanoTime和currentTimeMillis的不同精度很重要,那么您运行测试的时间就不够长!对于单个操作的计时,nano更精确。另请参见您可以使用的
System.currentTimeMillis()
您是否查看了
Date
上提供的方法
System.nanoTime
无论如何都是一种更好的方法,或者
System.currentTimeMillis()
,但无论哪种方法,您都应该找到
Date.getTime()
。顺便说一句,对于基准测试,我认为如果nanoTime和currentTimeMillis的不同精度很重要,那么您运行测试的时间就不够长!对于单个操作的计时,nano更精确。也请看,啊,之前没有试过,只是阅读了文档啊,之前没有试过,只是阅读了文档
long before = System.currentTimeMillis();
doStuff();
long after = System.currentTimeMillis();