Java 代码优化;测量代码段之间的时间
我想看看在我的android应用程序中执行某个方法需要多长时间。我的第一个想法是这样做: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()来计算时间,因为它使用了可用的最高精度计
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();