forked from logzhan/NotesUESTC
67 lines
1.5 KiB
Markdown
67 lines
1.5 KiB
Markdown
|
# Kotlin测量经过的时间
|
||
|
|
||
|
## 一、使用 `System.nanoTime()` 功能
|
||
|
|
||
|
在 Kotlin 中测量程序运行时间的推荐方法是 `System.nanoTime()`,它以纳秒精度返回 JVM 时间源的当前值。
|
||
|
|
||
|
```kotlin
|
||
|
fun main() {
|
||
|
val begin = System.nanoTime()
|
||
|
/* 代码开始 */
|
||
|
// 休眠 2 秒
|
||
|
Thread.sleep(2000)
|
||
|
/* 代码结束 */
|
||
|
val end = System.nanoTime()
|
||
|
println("Elapsed time in nanoseconds: ${end-begin}")
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## 二、使用 `System.currentTimeMillis()` 功能
|
||
|
|
||
|
您还可以使用 `System.currentTimeMillis()`,但结果可能不是那么准确。
|
||
|
|
||
|
```kotlin
|
||
|
|
||
|
fun main() {
|
||
|
val begin = System.currentTimeMillis()
|
||
|
/* 代码开始 */
|
||
|
// 休眠 2 秒
|
||
|
Thread.sleep(2000)
|
||
|
/* 代码结束 */
|
||
|
val end = System.currentTimeMillis()
|
||
|
println("Elapsed time in milliseconds: ${end-begin}")
|
||
|
}
|
||
|
```
|
||
|
|
||
|
这是使用的替代解决方案 `Instant.now()` 内部使用 `System.currentTimeMillis()`.
|
||
|
|
||
|
```kotlin
|
||
|
import java.time.Instant
|
||
|
|
||
|
fun main() {
|
||
|
val begin = Instant.now().toEpochMilli()
|
||
|
/* 代码开始 */
|
||
|
// 休眠 2 秒
|
||
|
Thread.sleep(2000)
|
||
|
/* 代码结束 */
|
||
|
val end = Instant.now().toEpochMilli()
|
||
|
println("Elapsed time in milliseconds: ${end-begin}")
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## 三.使用 `Date.getTime()` 功能
|
||
|
|
||
|
```kotlin
|
||
|
import java.util.Date
|
||
|
|
||
|
fun main() {
|
||
|
val begin = Date().time
|
||
|
/* 代码开始 */
|
||
|
// 休眠 2 秒
|
||
|
Thread.sleep(2000)
|
||
|
/* 代码结束 */
|
||
|
val end = Date().time
|
||
|
println("Elapsed time in milliseconds: ${end-begin}")
|
||
|
```
|
||
|
|