diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2025-03-18 07:26:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-18 07:26:35 +0100 |
| commit | 97db8e0351b9451ece8fd16c25ca0588ec71a2ab (patch) | |
| tree | e72f32df2b12677e9ae2f9997b226c8da97e56e4 /opendc-compute/opendc-compute-topology/src | |
| parent | 7dc2639a7fcdf51ef789f4af2e3afff11438be6e (diff) | |
Performance updates (#314)
Diffstat (limited to 'opendc-compute/opendc-compute-topology/src')
2 files changed, 17 insertions, 18 deletions
diff --git a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt index a20bc2c2..cc2c4b4e 100644 --- a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt +++ b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt @@ -44,10 +44,10 @@ import java.io.InputStream private val reader = TopologyReader() // Lists used to make sure all cluster, host, power source and battery have unique names -private val clusterNames: ArrayList<String> = ArrayList() -private val hostNames: ArrayList<String> = ArrayList() -private val powerSourceNames: ArrayList<String> = ArrayList() -private val batteryNames: ArrayList<String> = ArrayList() +private val clusterNames: HashMap<String, Int> = HashMap() +private val hostNames: HashMap<String, Int> = HashMap() +private val powerSourceNames: HashMap<String, Int> = HashMap() +private val batteryNames: HashMap<String, Int> = HashMap() /** * Create a unique name for the specified [name] that is not already in the [names] list. @@ -57,20 +57,19 @@ private val batteryNames: ArrayList<String> = ArrayList() */ private fun createUniqueName( name: String, - names: ArrayList<String>, + names: MutableMap<String, Int>, ): String { if (name !in names) { - names.add(name) + names[name] = 0 return name } - var i = 0 - var newName = "$name-$i" - while (newName in names) { - newName = "$name-${++i}" - } + val latestValue = names[name] + + val newName = "$name-$latestValue" + + names[name] = latestValue!! + 1 - names.add(newName) return newName } diff --git a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/TopologySpecs.kt b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/TopologySpecs.kt index 3d8b63dc..920d8373 100644 --- a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/TopologySpecs.kt +++ b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/TopologySpecs.kt @@ -34,7 +34,7 @@ import org.opendc.simulator.compute.power.batteries.policy.DoubleThresholdBatter import org.opendc.simulator.compute.power.batteries.policy.RunningMeanBatteryPolicy import org.opendc.simulator.compute.power.batteries.policy.RunningMeanPlusBatteryPolicy import org.opendc.simulator.compute.power.batteries.policy.SingleThresholdBatteryPolicy -import org.opendc.simulator.engine.graph.FlowGraph +import org.opendc.simulator.engine.engine.FlowEngine /** * Definition of a Topology modeled in the simulation. @@ -236,21 +236,21 @@ public data class RunningQuartilesPolicyJSONSpec( public fun createSimBatteryPolicy( batterySpec: BatteryPolicyJSONSpec, - graph: FlowGraph, + engine: FlowEngine, battery: SimBattery, batteryAggregator: BatteryAggregator, ): BatteryPolicy { return when (batterySpec) { is SingleBatteryPolicyJSONSpec -> SingleThresholdBatteryPolicy( - graph, + engine, battery, batteryAggregator, batterySpec.carbonThreshold, ) is DoubleBatteryPolicyJSONSpec -> DoubleThresholdBatteryPolicy( - graph, + engine, battery, batteryAggregator, batterySpec.lowerThreshold, @@ -258,7 +258,7 @@ public fun createSimBatteryPolicy( ) is RunningMeanPolicyJSONSpec -> RunningMeanBatteryPolicy( - graph, + engine, battery, batteryAggregator, batterySpec.startingThreshold, @@ -266,7 +266,7 @@ public fun createSimBatteryPolicy( ) is RunningMeanPlusPolicyJSONSpec -> RunningMeanPlusBatteryPolicy( - graph, + engine, battery, batteryAggregator, batterySpec.startingThreshold, |
