Repository navigation
Add ProcessorBenchmark to measure simulation time and memory footprint for cloudsimplus#595 (before) - #12
Merged
Conversation
…t for cloudsimplus#595 It uses the CloudSim Plus API before cloudsimplus#595 (a List<Pe> per Host), to get the numbers before that change. It measures the heap retained by Hosts and VMs with different numbers of cores and by a whole simulation scenario (before and after running it), and the time to run that scenario. HeapMeter reads the live heap from a class histogram, since the used heap after System.gc() may include objects not collected yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
manoelcampos
force-pushed
the
processor-benchmark-pe-list
branch
from
October 25, 2026 01:22
fb9aae1 to
6ac41ce
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
ProcessorBenchmark, which measures the simulation time and memory footprint reduction from cloudsimplus/cloudsimplus#595 (#592). That PR replaced theList<Pe>of Hosts (one object per CPU core) with a singleProcessorthat just counts the cores.This PR uses the CloudSim Plus API before #595, to get the "before" numbers.
masterwas reset to the commit before #11 so this benchmark could be added with the old API. After this PR is merged, #11 will be restored onmaster, and a follow-up PR moves the benchmark to the new API with the "after" numbers.What it measures
The memory values are the median of 5 rounds. Hosts and VMs are created only by
ProcessorScenario.newHost()/newVm(), so moving to the new API changes only those two methods.New
HeapMeterIt reads the live heap from a class histogram (the same as
jcmd <pid> GC.class_histogram), instead of the used heap afterSystem.gc().With CloudSim Plus after #595, the used heap read that way alternated between rounds. Objects from the previous round were sometimes still counted, which gave values such as 12 bytes per Host. The class histogram counts only reachable objects, so the results are stable with any GC.
Results (before cloudsimplus/cloudsimplus#595)
CloudSim Plus built from
9bb9de25c(installed locally), JDK 25.0.4, default GC,-Xmx4g:A Host grows about 123 bytes per core, because each core is a
PeSimpleobject.How to run it
CI: it compiles only against CloudSim Plus before #595. The published
9.0.0-SNAPSHOTalready has #595, so the CI build is expected to fail on this PR.🤖 Generated with Claude Code