Browse Source

visual-effects-ny benchmark: remove dependencies on time and random. Introduce number of iterations (#3218)

pull/3237/head v1.5.0-dev1063
Nikita Lipsky 12 months ago committed by GitHub
parent
commit
8a15fbe069
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/platform/NanoTime.kt
  2. 18
      benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/HappyNY.kt
  3. 5
      benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/platform/NanoTime.kt
  4. 7
      benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/platform/NanoTime.kt
  5. 7
      benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/platform/NanoTime.kt
  6. 7
      benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/platform/NanoTime.kt

8
benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/platform/NanoTime.kt

@ -1,3 +1,9 @@
package org.jetbrains.compose.demo.visuals.platform
actual fun nanoTime(): Long = System.nanoTime()
import kotlin.system.exitProcess
actual fun nanoTime(): Long = System.nanoTime()
actual fun measureTime() = nanoTime()
actual fun exit(): Unit = exitProcess(0)

18
benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/HappyNY.kt

@ -13,6 +13,9 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.delay
import org.jetbrains.compose.demo.visuals.platform.exit
import org.jetbrains.compose.demo.visuals.platform.measureTime
import org.jetbrains.compose.demo.visuals.platform.nanoTime
import kotlin.math.*
import kotlin.random.Random
@ -39,7 +42,9 @@ data class SnowFlake(
data class Star(val x: Dp, val y: Dp, val color: Color, val size: Dp)
fun random(): Float = Random.nextFloat()
val random = Random(123)
fun random(): Float = random.nextFloat()
class DoubleRocket(val particle: Particle) {
private val STATE_ROCKET = 0
@ -66,12 +71,20 @@ class DoubleRocket(val particle: Particle) {
}
}
var numOfIterations = 1
private fun reset() {
state = STATE_ROCKET
particle.x = 0.0
particle.y = 1000.0
particle.vx = 2.1
particle.vy = -12.5
numOfIterations -=1
if (numOfIterations == 0) {
println((measureTime() - measureTime)/1000000)
exit()
}
}
private fun explode(time: Long) {
@ -222,8 +235,11 @@ fun prepareStarsAndSnowFlakes(stars: SnapshotStateList<Star>, snowFlakes: Snapsh
}
}
var measureTime: Long = 0
@Composable
fun NYContent() {
measureTime = measureTime()
var time by remember { mutableStateOf(nanoTime()) }
var startTime = remember { nanoTime() }
var prevTime by remember { mutableStateOf(nanoTime()) }

5
benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/platform/NanoTime.kt

@ -1,3 +1,6 @@
package org.jetbrains.compose.demo.visuals.platform
expect fun nanoTime(): Long
expect fun nanoTime(): Long
expect fun measureTime(): Long
expect fun exit(): Unit

7
benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/platform/NanoTime.kt

@ -1,3 +1,8 @@
package org.jetbrains.compose.demo.visuals.platform
actual fun nanoTime(): Long = System.nanoTime()
import kotlin.system.exitProcess
actual fun nanoTime(): Long = 0//System.nanoTime()
actual fun measureTime() = System.nanoTime()
actual fun exit(): Unit = exitProcess(0)

7
benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/platform/NanoTime.kt

@ -1,3 +1,8 @@
package org.jetbrains.compose.demo.visuals.platform
actual fun nanoTime(): Long = kotlin.system.getTimeNanos()
import kotlin.system.exitProcess
actual fun nanoTime(): Long = kotlin.system.getTimeNanos()
actual fun measureTime() = nanoTime()
actual fun exit(): Unit = exitProcess(0)

7
benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/platform/NanoTime.kt

@ -1,3 +1,8 @@
package org.jetbrains.compose.demo.visuals.platform
actual fun nanoTime(): Long = kotlin.system.getTimeNanos()
import kotlin.system.exitProcess
actual fun nanoTime(): Long = 0;//kotlin.system.getTimeNanos()
actual fun measureTime() = kotlin.system.getTimeNanos()
actual fun exit(): Unit = exitProcess(0)
Loading…
Cancel
Save