[Pharo-users] Large Image Generator

Benoit St-Jean bstjean at yahoo.com
Thu Feb 6 06:16:52 EST 2020


Here's my quick list of ideas to generate gigantic images...

The easiest way to fill the image quickly is to load huge packages that 
can also generate tons of data. The firsts that come to mind are Moose, 
Roassal, Seaside, BioSmalltalk, PolyMath, Marea, Magma (not sure if it 
is still supported though) and Dr. Geo. Another possibility is to use 
tools that can import tons of data into the image : there are tons of 
stress-test-gicantic XML schemas out there that we could load/read with 
one of our XML readers out there.

Another good candidate to torture the GC would be the FHCP challenge: 
they had to solved gigantic graphs and, luckily for us, the winners in 
2016 were from Inria so someone there must have the data to load those 
graphs (and perhaps the algorithms!). DeepTraverser could probably do 
the job here.

Other obvious tests involve pushing the language/VM to its limits : how 
does Pharo react if we flood the image with 4 million symbols??? Or 
create a hierarchy of 30000 classes? Or have a package with 2000 tags? 
Is there any limit to the size of a methods (say, we create a method 
with 5000 literals)? Or create a gazillion classes, each with the 
maximum number of instance variables possible? What if we create a class 
that has a reference to every class in the image and see how the 
dependency checker copes with that?

Also, there's a lot of objects that are treated "specially" in the 
image.?? How does the VM/GC reacts when there's a gazillion of them? 
Semaphores, blocks, symbols, points, processes, weak objects, etc.

We could also generate a humongous graph/collection/whatever that could 
be loaded fast with Fuel instead of having to create those objects from 
scratch every time.

P.S. I have found quite a few discussions on the Squeak & Pharo mailing 
lists regarding problems with large images and I've collected the 
references to those threads. I'd be more than happy to share those with 
you in private if you're interested! I've also found lots of references 
to GC benchmarks/torture-tests used by other languages with GC and I 
think lots of them could also apply to our memory model...

On 2020-01-29 13:30, tesonep at gmail.com wrote:
> The main goal of the project is to start a recollection of existing
> solutions and to add new ones to generate this synthetic images. We
> want also to generate images that reproduce the nature of images. For
> example, it is not enough to generate random method selectors if we
> are testing the indexing of them. A good index varies its performance
> depending of the nature of the text. We need to generate random
> methods following some rules a developer whould use, for example using
> more a given word or using real words.

Beno??t St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
Instagram: Chef_Benito
IRC: lamneth
GitHub: bstjean
Blogue: endormitoire.wordpress.com
"A standpoint is an intellectual horizon of radius zero".  (A. Einstein)

More information about the Pharo-users mailing list