Roassal turn your programming environment into a beauty center for objects Vanessa Peña Camilo Gomez Alexandre Bergel Object Profile & University of Chile
Roassalturn your programming environment into a
beauty center for objects
Vanessa PeñaCamilo Gomez
Alexandre Bergel
Object Profile & University of Chile
Roassal
Advanced visualization engine
Useful to draw pictures of your data
Well modularized Easily portable (Pharo, VisualWorks, Amber, ...)
Few external dependencies
Open source (MIT)
view nodes: Collection withAllSubclasses.
view nodes: Collection withAllSubclasses.
view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.
view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout
view shape rectangle ! width: #numberOfVariables;! height: #numberOfMethods.view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout
DEMO
Roassal architecture & model
Pharo, VW, Amber
Roassal
Mondrian
Your application
GraphicalElement
shape1 shape2 shape3
interactiondictionary
#executions
execution time
gray = side effectyellow = no side effect
A
B
D
C
E
F
1
2
3Method 1 calls Method 2.Method 3 calls Method 1
Profiling blueprint
10
Profiling blueprint
11
#executions
execution time
gray = side effectyellow = no side effect
A
B
D
C
E
F
1
2
3Method 1 calls Method 2.Method 3 calls Method 1
methods that takes times, are executed many times,
and without significant side effect
Adding a memoization
ROElement>>bounds! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache := self position extent: (shape extentFor: self)
Adding a memoization
ROElement>>bounds! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache := self position extent: (shape extentFor: self)
Effect of the memoization
14
AB C D
cached
absoluteBoundsmake display:on:
call absoluteBoundsinstead of absoluteBoundsFor:
A'
C'
B'
C'
15
16
Execution profiling blueprints. So!ware: Practices and Experience, 2012Visualizing Dynamic Metrics with Profiling Blueprints. Proceedings of the TOOLS, 2010Counting Messages as a Proxy for Average Execution Time in Pharo. Proceedings of ECOOP, 2011Identifying Optimization Opportunities by Visualizing So!ware Execution. To be submitted to CACM
17
18
VisuAuleVisual code inspector
By Camilo during the ‘show us your project’ session
Join us!
We have positions Interships
Engineering
Master
PhD
Deadline is the end of this month
Santiago is a cool city! no mosquitos!
ObjectProfile.comfacebook.com/ObjectProfile@ObjectProfile
Spy @ Cincom StoreSpy @ SqueakSourceSpy @ ...
Thanks to all of you guys!