100 likes | 250 Views
Charting Everywhere. Short-Talk. In order to analyze and compare size of embedded applications we developed a framework on top of BIRT‘s charting APIs.
E N D
Short-Talk • In order to analyze and compare size of embedded applications we developed a framework on top of BIRT‘s charting APIs. • During this talk we present this generic framework (chart viewer, data set providers, ...) and how, as an experiment, we were able to re-target it to enhance the whole Eclipse platform with charts : property pages for IBinary (CDT), IContainer (core resources) and some more. • The goal of this talk is to advocate that BIRT Charts can be used almost anywhere to enhance the Eclipse user experience. • Also see CDT short talk „Because Size Matters“
Initial Use Case • Binary files are composed of multiple sections (text, data, ...). • Use charts to graphically visualize size of sections • Chart Engine API generated from EMF model • Very rich • Maybe too heavy when one only has to handle simple charts (bar/pie-chart) with very simple series (String[] x int[]) • Chart Engine builds a Chart that can be rendered in a GC • Needs a reusable Chart viewer
Overview of the Framework • : a viewer, configurable with style bits • : an IContentProvider providing simple chart data • : a thin abstraction layer on top of the Chart API (PIE_CHART, STACKED_BAR_CHART, TWO_D, THREE_D, …) y a getX() = {x0,x1} getY() = {a,b} getYLabel() = y getYValues = {{a0,a1}, {b0,b1}} a0 b a1 b0 b1 x1 x0
Binary Object Size Property Page ChartViewer (PIE_CHART) (STACKED_BAR_CHART)
Metrics View • A view displaying LOC/method distribution • Java (IMethod) • C (IFunction) • Underlying chart updated on Workspace selection
Heap Status versus Heap History View • Heap Status (org.eclipse.ui.internal) • Composite, instantaneous memory consumption • Heap History View • Memory consumption over a time frame • Chart updated every ‘n’ seconds
Conclusion • Because almost every Eclipse plug-in directly or indirectly manipulates numerical data the number of potential chart users is large • Need a layer on top of BIRT Charting APIs to make the Chart Engine more accessible to the community