summaryrefslogtreecommitdiff
path: root/opendc/opendc-experiments-sc20
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-04-06 16:36:49 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-04-06 16:49:53 +0200
commit02864ba50fafffd19bb1b635eea06004d9fd78aa (patch)
tree5ed6de9f907d493d841951fe9b8fb611616c1b43 /opendc/opendc-experiments-sc20
parent6fc21e6df6345c6ec029cc50674352949af83510 (diff)
perf: Optimize SimpleVirtDriver
This change optimizes the SimpleVirtDriver by removing unnecessary cancellations (which take a lot of time due to exception construction). Moreover, we now try to keep intermediate state sorted so that we do not have to re-sort every scheduling cycle (which was rather heavy as profiling showed).
Diffstat (limited to 'opendc/opendc-experiments-sc20')
-rw-r--r--opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt2
1 files changed, 2 insertions, 0 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
index ca7e31ea..3392bd02 100644
--- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
+++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
@@ -119,6 +119,7 @@ fun createFaultInjector(domain: Domain, random: Random): FaultInjector {
@OptIn(ExperimentalCoroutinesApi::class)
fun main(args: Array<String>) {
ArgParser(args).parseInto(::ExperimentParameters).run {
+ val start = System.currentTimeMillis()
val monitor = Sc20Monitor(outputFile)
val provider = ServiceLoader.load(SimulationEngineProvider::class.java).first()
@@ -262,6 +263,7 @@ fun main(args: Array<String>) {
scheduler.terminate()
failureDomain?.cancel()
println(simulationContext.clock.instant())
+ println("${System.currentTimeMillis() - start} milliseconds")
}
runBlocking {