Skip to content

Measure the Cloudlet memory footprint (cloudsimplus#587) - #10

Merged
manoelcampos merged 1 commit into
masterfrom
cloudlet-memory-benchmark
Oct 20, 2026
Merged

manoelcampos merged 1 commit into
masterfrom
cloudlet-memory-benchmark

Conversation

@manoelcampos

@manoelcampos manoelcampos commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Adds CloudletSimple to the memory benchmark, to measure the memory saved by cloudsimplus/cloudsimplus#587 (merged in cloudsimplus/cloudsimplus#594).
Related to cloudsimplus/cloudsimplus#523.

Changes

  • The benchmark also measures the heap retained by each CloudletSimple (created with the default utilization models).
  • ListenersMemoryBenchmark was renamed to org.cloudsimplus.benchmarks.MemoryFootprintBenchmark, since it measures the whole memory footprint of each object (with everything it references), not only the listeners. This way, it covers all changes from #587.
  • Javadoc and CLAUDE.md describe the changes from #586 and #587.

Results

./mvnw clean package -Pcloudsimplus-8
java -XX:+UseSerialGC -cp target/cloudsimplus-benchmarks-*-uber.jar org.cloudsimplus.benchmarks.MemoryFootprintBenchmark 8.5.1

./mvnw clean package
java -XX:+UseSerialGC -cp target/cloudsimplus-benchmarks-*-uber.jar org.cloudsimplus.benchmarks.MemoryFootprintBenchmark current
Class 8.5.1 Current (9.0.0-SNAPSHOT, with #594) Difference
VmSimple 1144 B 880 B −264 B
HostSimple 880 B 912 B +32 B
CloudletSimple 464 B 216 B −248 B (−53.4%)

The Cloudlet savings match the estimate from #594 exactly (the benchmark gives the total; the split below comes from #594):

  • 3 listener HashSets replaced by the shared List.of(): ~192 B;
  • requiredFiles created only on the first added file: ~32 B;
  • shared UtilizationModel.FULL instead of a new UtilizationModelFull per Cloudlet: ~24 B.

That is about 248 MB less heap per 1M Cloudlets.

The comparison with 8.5.1 includes all changes since that version, not only #587 (see #7 for the VM and Host results).

Run with JDK 25.0.4 (Corretto), compressed oops, with CloudSim Plus master (9bb9de25c) installed locally.

🤖 Generated with Claude Code

@manoelcampos manoelcampos self-assigned this Oct 20, 2026
Adds CloudletSimple to the memory benchmark, to measure the memory saved by
cloudsimplus/cloudsimplus#587: listener lists and requiredFiles starting as
the shared List.of(), and the shared UtilizationModel.FULL for the CPU.

ListenersMemoryBenchmark is renamed to MemoryFootprintBenchmark and moved to
the benchmarks package, since it measures the whole memory footprint of each
VM, Host and Cloudlet, not only the listeners.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@manoelcampos
manoelcampos force-pushed the cloudlet-memory-benchmark branch from 8d9e3c2 to 8cce487 Compare October 20, 2026 22:37
@manoelcampos
manoelcampos merged commit 2ae2a42 into master Oct 20, 2026
1 check failed
@manoelcampos
manoelcampos deleted the cloudlet-memory-benchmark branch October 20, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant