eclipseCon 2006 March 20-23 Santa Clara Convention Center







Leave feedback

asterisk.eclipse.org

Honey, I shrunk Eclipse!

Chris Laffra (IBM Rational) and Wing Hong (Albert) Ho (IBM)

Developer Track · Long Talk

Presentation file

Wednesday, 15:15, 45 minutes | Ballroom CD   Add to your calendariCal

8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18
·
19
Picture

Chris Laffra

Picture

Wing Hong (Albert) Ho

Leave feedback

To scale the Eclipse platform to a large product, plugin developers will at some point have to study both their CPU performance and their memory consumption.

Eclipse offers non-traditional performance challenges that have to do with the adoption of a large framework. It has been wisely coined that every Computer Science problem can be solved by adding one more layer of abstraction. The various Eclipse abstractions such as plugins, extension points, and features, allow developers to grow Eclipse to an unprecedented size. Some products include over 2,000 plugins. However, profiling tools typically only show low- level details that make it hard to rediscover the abstractions. For instance, one single API call in JDT may unwittingly result in millions of method calls if the workspace is large. Stack traces of 500-600 deep are not exceptional. How do we profile such large applications and make sure we don't get lost?

In addition to performance, memory consumption is highly relevant for Eclipse applications. Most Eclipse applications, including IDE extensions, are just in the business of converting data into different formats, such as from XML into a binary registry, Java source into class files, JSPs into Java and HTML, etc. Data conversion is often an expensive process, and plugin authors quickly resort to using a cache to play the space/time tradeoff game. Monitoring Java heap growth and doing blame analysis is far from trivial. It can be quite difficult to discover who owns a certain string when the heap measures 600MB and contains millions of objects.

What we will go over in this session is a set of publicly available profiling tools, and see how they can be used to profile Eclipse and analyze its heap usage and detect leaks. Various live demos will be given on real Eclipse scenarios and we will see how these profiling tools help address complexity.

Chris was born in The Netherlands, obtained a MsC at the Vrije Universiteit of Amsterdam and a PhD at the Erasmus University of Rotterdam. At both IBM T.J. Watson Research Center and Morgan-Stanley, Chris worked on tools for user interfaces, component infrastructures, program analysis, debugging, visualization, compression, and optimization. He led the OTI Amsterdam lab for 3.5 years, working on WebSphere Studio Device Developer. He worked with IBM Rational in Ottawa on Java runtimes and Eclipse and in RTP on Eclipse Performance. Currently he works on EGL, IBM's 4GL solution.

Albert joined IBM in 1999 after graduating from the University of Waterloo in Canada with a degree in Pure Mathematics and Computer Science. Most recently he is a core member of the Rational Performance Engineering team. In addition to performance, he is also interested in IDE construction and programming language design.




Gold sponsors

Accelerated Technology logo

Business Objects logo

Sybase logo

Compuware logo

Actuate logo

IBM logo

Serena logo

HP logo

BEA logo

Silver sponsors

Sales Force logo

Wind River logo

Innoopract logo

Borland logo

ILOG logo

Lynux Works logo

Black Duck logo

Nokia logo

Scapa Technologies logo

Adobe logo

Media sponsors

Software Test & Performance logo

ACM Queue logo

IEEE Software logo

Sys Admin logo

Eclipse Source logo

Eclipse Magazine logo

Software Development logo

Embedded Computing logo

Addison-Wesley logo

Eclipse Developers journal logo

Eclipse Zone logo

Eclipse Review logo

SD Times logo

Dr. Dobb's logo