This document introduces Roassal, an advanced visualization engine that can be used to draw pictures of data. It is well modularized and portable across Pharo, VisualWorks, Amber, and other environments. The document demonstrates how Roassal can be used to visualize object graphs and profiles method execution times. It shows an example of adding memoization to improve performance and the resulting impact on execution profiling blueprints. Finally, it mentions related work on visualizing software execution and opportunities to join the Object Profile team in Santiago.
1 of 20
Download to read offline
More Related Content
Roassal presentation
1. Roassal
turn your programming environment into a
beauty center for objects
Vanessa Pe単a
Camilo Gomez
Alexandre Bergel
Object Pro鍖le & University of Chile
2. Roassal
Advanced visualization engine
Useful to draw pictures of your data
Well modularized
Easily portable (Pharo, VisualWorks, Amber, ...)
Few external dependencies
Open source (MIT)
9. Roassal architecture & model
Your application shape1 shape2 shape3
Mondrian
Graphical
Roassal Element
Pharo, VW,
interaction
Amber dictionary
10. Pro鍖ling blueprint
A
B
E
gray = C
execution side effect
time yellow = no
side effect
D
#executions
1
3
2 Method 1 calls Method 2.
Method 3 calls Method 1
F
10
11. Pro鍖ling blueprint
A
B
E
gray = C
execution side effect
methods that takes times,
time yellow = no
side effect
are executed many times, #executions
D
and without signi鍖cant
1
side effect 3Method 1 calls Method 2.
2
Method 3 calls Method 1
F
11
12. Adding a memoization
ROElement>>bounds
! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache :=
self position extent: (shape extentFor: self)
13. Adding a memoization
ROElement>>bounds
! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache :=
self position extent: (shape extentFor: self)
16. Execution pro鍖ling blueprints. So!ware: Practices and Experience, 2012
Visualizing Dynamic Metrics with Pro鍖ling Blueprints. Proceedings of the TOOLS, 2010
Counting Messages as a Proxy for Average Execution Time in Pharo. Proceedings of ECOOP, 2011
Identifying Optimization Opportunities by Visualizing So!ware Execution. To be submitted to CACM
16