Top Banner
Roassal turn your programming environment into a beauty center for objects Vanessa Peña Camilo Gomez Alexandre Bergel Object Profile & University of Chile
20
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Roassal presentation

Roassalturn your programming environment into a

beauty center for objects

Vanessa PeñaCamilo Gomez

Alexandre Bergel

Object Profile & University of Chile

Page 2: Roassal presentation

Roassal

Advanced visualization engine

Useful to draw pictures of your data

Well modularized Easily portable (Pharo, VisualWorks, Amber, ...)

Few external dependencies

Open source (MIT)

Page 3: Roassal presentation
Page 4: Roassal presentation

view nodes: Collection withAllSubclasses.

Page 5: Roassal presentation

view nodes: Collection withAllSubclasses.

Page 6: Roassal presentation

view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.

Page 7: Roassal presentation

view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout

Page 8: Roassal presentation

view shape rectangle ! width: #numberOfVariables;! height: #numberOfMethods.view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout

DEMO

Page 9: Roassal presentation

Roassal architecture & model

Pharo, VW, Amber

Roassal

Mondrian

Your application

GraphicalElement

shape1 shape2 shape3

interactiondictionary

Page 10: Roassal presentation

#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

Page 11: Roassal presentation

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

Page 12: Roassal presentation

Adding a memoization

ROElement>>bounds! "Return the bounds of the element"

! boundsCache ifNotNil: [ ^ boundsCache ].

! ^ boundsCache := self position extent: (shape extentFor: self)

Page 13: Roassal presentation

Adding a memoization

ROElement>>bounds! "Return the bounds of the element"

! boundsCache ifNotNil: [ ^ boundsCache ].

! ^ boundsCache := self position extent: (shape extentFor: self)

Page 14: Roassal presentation

Effect of the memoization

14

Page 15: Roassal presentation

AB C D

cached

absoluteBoundsmake display:on:

call absoluteBoundsinstead of absoluteBoundsFor:

A'

C'

B'

C'

15

Page 16: Roassal presentation

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

Page 17: Roassal presentation

17

Page 18: Roassal presentation

18

VisuAuleVisual code inspector

By Camilo during the ‘show us your project’ session

Page 19: Roassal presentation

Join us!

We have positions Interships

Engineering

Master

PhD

Deadline is the end of this month

Santiago is a cool city! no mosquitos!

Page 20: Roassal presentation

ObjectProfile.comfacebook.com/ObjectProfile@ObjectProfile

Spy @ Cincom StoreSpy @ SqueakSourceSpy @ ...

Thanks to all of you guys!