Skip to content

Revamp Fuel-Benchmarks package and tests (Pharo 14)#298

Draft
tinchodias wants to merge 1 commit intotheseion:Pharo14from
tinchodias:297-Running-Fuel-Benchmark-package-in-Pharo-14
Draft

Revamp Fuel-Benchmarks package and tests (Pharo 14)#298
tinchodias wants to merge 1 commit intotheseion:Pharo14from
tinchodias:297-Running-Fuel-Benchmark-package-in-Pharo-14

Conversation

@tinchodias
Copy link
Collaborator

@tinchodias tinchodias commented Dec 3, 2025

See #297

@tinchodias tinchodias marked this pull request as draft December 3, 2025 19:53
@tinchodias
Copy link
Collaborator Author

I've worked on this code after 1. load SMark (see below), 2. manually load Fuel-Benchmarks and its tests via Iceberg (from theseion/Fuel:master).

SMark:

        Metacello new
            baseline: 'SMark';
            repository: 'github://smarr/SMark';
            load.

tinchodias added a commit to tinchodias/pharo that referenced this pull request Dec 5, 2025
…on ephemeron show a bug.

Some benchmarks were 45% faster. Maybe this experimental commit can lead to a FLSerializer option where the user can
choose for it when the user knows that object graph to be serialized has no ephemerons and is not concurrently changing.

An object graph that changes in another Process while it's being serialized was the main reason AFAIR to store the
references in temporary collections during the analysis.

Serialization--floats--FLByteArrayStreamStrategy total: iterations=30 runtime: 82ms +/-11
Serialization--regularGraphOfFixedDegree--FLByteArrayStreamStrategy total: iterations=30 runtime: 253ms +/-15
Serialization--smallIntegers--FLByteArrayStreamStrategy total: iterations=30 runtime: 88ms +/-13
Serialization--completeGraph--FLByteArrayStreamStrategy total: iterations=30 runtime: 85.3ms +/-1.5
Serialization--points--FLByteArrayStreamStrategy total: iterations=30 runtime: 300ms +/-20
Serialization--floats--FLByteArrayStreamStrategy total: iterations=5 runtime: 64.2ms +/-5.1
Serialization--regularGraphOfFixedDegree--FLByteArrayStreamStrategy total: iterations=5 runtime: 149.4ms +/-1.9
Serialization--smallIntegers--FLByteArrayStreamStrategy total: iterations=5 runtime: 65.4ms +/-4.4
Serialization--completeGraph--FLByteArrayStreamStrategy total: iterations=5 runtime: 73.0ms +/-1.6
Serialization--points--FLByteArrayStreamStrategy total: iterations=5 runtime: 174ms +/-16

Serialization--floats--FLByteArrayStreamStrategy total: iterations=30 runtime: 1212ms +/-14
Serialization--regularGraphOfFixedDegree--FLByteArrayStreamStrategy total: iterations=30 runtime: 4445ms +/-16
Serialization--smallIntegers--FLByteArrayStreamStrategy total: iterations=30 runtime: 1153ms +/-20
Serialization--completeGraph--FLByteArrayStreamStrategy total: iterations=30 runtime: 909ms +/-23
Serialization--points--FLByteArrayStreamStrategy total: iterations=30 runtime: 5675ms +/-52
Serialization--floats--FLByteArrayStreamStrategy total: iterations=5 runtime: 1036ms +/-162
Serialization--regularGraphOfFixedDegree--FLByteArrayStreamStrategy total: iterations=5 runtime: 2550ms +/-13
Serialization--smallIntegers--FLByteArrayStreamStrategy total: iterations=5 runtime: 1212ms +/-55
Serialization--completeGraph--FLByteArrayStreamStrategy total: iterations=5 runtime: 857ms +/-77
Serialization--points--FLByteArrayStreamStrategy total: iterations=5 runtime: 3073ms +/-211

More precision on benchmarks:
- commit: tinchodias/Fuel@12a10b1
- currently in this Pull Request: theseion/Fuel#298

My steps to restore the code were:
1. Download Pharo 9 with Monticello Browser
2. Add original Fuel repo, as github.com/theseion/Fuel doesn't have these old commits
3. Open repository and load version "Fuel-MartinDias.761" (see more info below)
4. Fileout FLVariablesMapping and export it in Pharo 14
5. Do some manual tweaks as this class now has special treatment for stateful traits

Fuel version of reference for this commit:

	Name: Fuel-MartinDias.761
	Author: MartinDias
	Time: 25 February 2013, 3:08:40.37 pm
	UUID: 2d723507-9b47-4f83-8a5f-f630a155dfe6
	Ancestors: Fuel-MartinDias.760

	Updating #currentVersion in FLSerializer and FLMaterializer t0 19
@stale
Copy link

stale bot commented Feb 3, 2026

This issue has been automatically marked as stale because it has not had recent activity. It will remain open but will probably not come into focus. If you still think this should receive some attention, leave a comment. Thank you for your contributions.

@stale stale bot added the stale label Feb 3, 2026
@tinchodias
Copy link
Collaborator Author

not stale
I still want to rescue these changes

@tinchodias tinchodias removed the stale label Feb 3, 2026
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