Transcript

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!

top related