EMF Compare. EMF Compare. Summary : Table des mises à jour Version Date Auteur(s) Mises à jour v1.0 06/10/11 Laurent Goubet Initial Version



Similar documents
A Practical Method to Diagnose Memory Leaks in Java Application Alan Yu

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0

Instrumentation Software Profiling

CHAPTER 1 INTRODUCTION

Java Generation from UML Models specified with Alf Annotations

CloudCmp:Comparing Cloud Providers. Raja Abhinay Moparthi

Java Performance. Adrian Dozsa TM-JUG

USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area. CPSC 822 Case Study in Operating Systems

Practical Performance Understanding the Performance of Your Application

Deploying Fusion Middleware in a 100% Virtual Environment Using OVM ANDY WEAVER FISHBOWL SOLUTIONS, INC.

Monitoring IBM WebSphere extreme Scale (WXS) Calls With dynatrace

Development Environment and Tools for Java. Brian Hughes IBM

Tier Architectures. Kathleen Durant CS 3200

Self Adaptive Software System Monitoring for Performance Anomaly Localization

Minimum Hardware Configurations for EMC Documentum Archive Services for SAP Practical Sizing Guide

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Quantifind s story: Building custom interactive data analytics infrastructure

Low level Java programming With examples from OpenHFT

AMD WHITE PAPER GETTING STARTED WITH SEQUENCEL. AMD Embedded Solutions 1

Binary search tree with SIMD bandwidth optimization using SSE

QuickDB Yet YetAnother Database Management System?

Effective Java Programming. efficient software development

Semester Thesis Traffic Monitoring in Sensor Networks

FAWN - a Fast Array of Wimpy Nodes

1/20/2016 INTRODUCTION

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Memory Profiling using Visual VM

Resource Utilization of Middleware Components in Embedded Systems

Modernizing Simulation Input Generation and Post-Simulation Data Visualization with Eclipse ICE

Profiling and Testing with Test and Performance Tools Platform (TPTP)

Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle

CHAPTER 7 RESULT ANALYSIS AND STATISTICS. 7.1 Introduction to manual Vs automated testing

How To Write A Test Program For Eclipse (Eclipse)

Completing the Big Data Ecosystem:

EMC XTREMIO EXECUTIVE OVERVIEW

White Paper. Recording Server Virtualization

Whitepaper: performance of SqlBulkCopy

Installation Guide Sybase ETL Small Business Edition 4.2 for Windows

Muse Server Sizing. 18 June Document Version Muse

4D WebSTAR 5.1: Performance Advantages

MQT, an Approach for Runtime Query Translation: From EOL to SQL

BRINGING INFORMATION RETRIEVAL BACK TO DATABASE MANAGEMENT SYSTEMS

Jos Warmer, Independent

Table of Contents. June 2010

How to recover a failed Storage Spaces

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework

Understanding the Benefits of IBM SPSS Statistics Server

Lab 0 (Setting up your Development Environment) Week 1

Parallel Processing and Software Performance. Lukáš Marek

QLIKVIEW SERVER MEMORY MANAGEMENT AND CPU UTILIZATION

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

The STC for Event Analysis: Scalability Issues

Informatica Ultra Messaging SMX Shared-Memory Transport

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

BLACKBOARD LEARN TM AND VIRTUALIZATION Anand Gopinath, Software Performance Engineer, Blackboard Inc. Nakisa Shafiee, Senior Software Performance

JBoss Portal 2.4. Quickstart User Guide

Change Impact Analysis

IBM Rational Asset Manager

Files. Files. Files. Files. Files. File Organisation. What s it all about? What s in a file?

How To Use Data Mining For Loyalty Based Management

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

Gary Frost AMD Java Labs

Eclipse Visualization and Performance Monitoring

TPCalc : a throughput calculator for computer architecture studies

CiteSeer x in the Cloud

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Guideline for stresstest Page 1 of 6. Stress test

16.1 MAPREDUCE. For personal use only, not for distribution. 333

Technical Paper. Moving SAS Applications from a Physical to a Virtual VMware Environment

Driving force. What future software needs. Potential research topics

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

International Journal of Advance Research in Computer Science and Management Studies

EECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Change Management. ABSTRACT

RevoScaleR Speed and Scalability

J2EE-JAVA SYSTEM MONITORING (Wily introscope)

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

DataDirect XQuery Technical Overview

Virtualization: What does it mean for SAS? Karl Fisher and Clarke Thacher, SAS Institute Inc., Cary, NC

Bringing Business Objects into ETL Technology

Optimizing the Performance of Your Longview Application

Java Embedded Applications

Physical Data Organization

Holistic Performance Analysis of J2EE Applications

Eclipse Memory Analyzer and other Java stuff

DATA MASKING A WHITE PAPER BY K2VIEW. ABSTRACT K2VIEW DATA MASKING

WP36: Composed Service Accounting Architecture Definition

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems

A Modular Approach to Teaching Mobile APPS Development

Explorer's Guide to the Semantic Web

Collaborative Software Engineering on Large-scale models: Requirements and Experience in ModelBus *

Development of Monitoring and Analysis Tools for the Huawei Cloud Storage

Enabling the Use of Data

QLIKVIEW ARCHITECTURE AND SYSTEM RESOURCE USAGE

How To Manage A Network Security Risk

Transcription:

EMF Compare Summary : Table des mises à jour Version Date Auteur(s) Mises à jour v1.0 06/10/11 Laurent Goubet Initial Version Réf : compare_scalability.odt Page 1/7

Sommaire 1 - Scope...3 2 - Model Structure...4 3 - Methodology...5 3.1 - Environment...5 3.2 - Procedure...5 4 - Results...6 4.1 - Time and memory management...6 4.2 - Analysis...6 Réf : compare_scalability.odt Page 2/7

1 - Scope This document aims at describing the current state of the EMF Compare performance and scalability, from the points of view of both memory and time management. We will then strive to describe the potential improvements that could be made to the comparison process in order to either reduce the memory footprint of EMF Compare or reduce the overall comparison time. Réf : compare_scalability.odt 1 - Scope Page 3/7

2 - Model Structure The models used to perform the different performance tests are UML models randomly generated according to a set of specifications for packages, classes, operations, state machines... They are fragmented so that each package, sub-package and state machine is extracted into its own fragment. Each of the test models are copy/pasted and their copy randomly modified so that it presents a number of changes. The models will henceforth be referred to according to their sizes : one of «small», «nominal» or «large». Following is the count of element for each of these three sizes. Small Nominal Large Fragments 99 399 947 Packages 97 389 880 Classes 140 578 2169 Primitive Types 581 5370 17152 Data Types 599 5781 18637 State Machines 55 209 1311 States 202 765 10156 Dependencies 235 2522 8681 Transitions 798 3106 49805 Operations 1183 5903 46029 Réf : compare_scalability.odt 2 - Model Structure Page 4/7

3 - Methodology The methodology followed to retrieve time and memory information is the same for each of the three model sizes. All tests have been carried with the same machine, with the same environment. 3.1 - Environment Windows 7 home edition 64 bits JDK 1.5 update 22 64 bits Yourkit Java profiler 8.0 Eclipse 3.7.0 64 bits EMF Compare 1.3.0 M3 3.2 - Procedure Launch Yourkit Java Profiler Launch a new Eclipse instance under monitoring of the Yourkit Java profiler Make sure that EMF Compare is using the XMI ID for the comparison Select both versions of the model and use the action Compare With > Each Other Stop the Profiling through Yourkit when the comparison process has ended The comparisons launched for these tests are two-way comparisons. In the context of a Version Control System, the comparisons would be three-way, inducing slightly more important times and memory consumptions. The heap status is displayed over time by Yourkit; what we record in these test is the maximum value that the used heap reached during the comparison process. The comparison times recorded here are the CPU time as displayed by Yourkit between the time it has been launched (before we hit the Compare With > Each Other action) and the time the comparison ended (when the compare editor is opened and has focus). The matching, differencing and model loading times we consider are the CPU times reported by Yourkit for each of the three distinct processes. Réf : compare_scalability.odt 3 - Methodology Page 5/7

4 - Results 4.1 - Time and memory management Small model : comparison time : 6 seconds. Maximum heap : 555 Mo. Nominal model : comparison time : 22 seconds. Maximum heap : 1019 Mo. Large model : comparison time : 125 seconds. Maximum heap : 2100 Mo. 4.2 - Analysis Small : 52% loading resources, 19% matching, 29% diffing Nominal : 44% loading resources, 17% matching, 39% diffing Large : 24% loading resources, 28% matching, 48% diffing 100% 90% 80% 70% 60% 50% 40% 30% Differencing Matching Resource Loading 20% 10% 0% Small Nominal Large The current limitation of EMF Compare lies in its memory management, as it needs to fully load the models to compare, whether fragmented or not. Furthermore, EMF Compare loads two instances of the compare model (left and right) or up to three instances when comparing with a repository (left, right, and common ancestor of the two). This current architecture means that not only do we fully load the n instances of the model, but we iterate over the whole thing at least twice during the matching and differencing process, contributing to the overall increase of the comparison time. Moreover, comparing the whole model as EMF Compare currently does mean that the comparison result is scarcely exploitable : the comparison editor will be slow, the number of differences displayed at once too high... and the sheer number of elements represented in the editor (the whole tree representation of the model, twice at least (left and right)) will make the editor sluggish. Three potential axes of improvement can be explored : 1. Thread the model loading This will only serve to reduce the model loading time, and will do nothing for the memory consumption. However, this will allow us to fully use the CPU's power for multi-core machines, and will reduce the loading time by a rate depending on the number of available cores. 2. Fragment the comparison process The results of a comparison (matching and differencing) are models mimicking the comparison input's hierarchy. However, neither the match nor the diff are fragmented : they are both saved in a Réf : compare_scalability.odt 4 - Results Page 6/7

single resource, created on-the-fly however the fragmentation of the input models. Fragmenting the matching and differencing process so that they reflect their input would be a way to reduce the overall memory consumed during the comparison process, allowing EMF Compare to unload the fragments it has already iterated over. This axis would decrease the memory footprint of EMF Compare during the comparison process; however it would do nothing for the comparison time. 3. Reduce the scope of the comparison The current architecture makes EMF Compare consider models as a whole, forcing us to load the whole models in memory every time we need to compare them. However, out of a hundred fragments, there might have only be three that really changed, and thus we could have obtained the desired result by only loading -and comparing- those three fragments; dramatically improving both the comparison time (we would only need to iterate on a small portion of the input models) and memory consumption (only three thousandth of the model need be loaded in memory). By making use of the logical models, it should be possible to determine which of the n fragments really changed, thus enabling a meaningful partial comparison and merging. This particular improvement axis would help the comparison time, reduce the overall memory footprint of EMF Compare by orders of magnitude and solve the lack of reactivity of the EMF Compare editor when large models are being compared and displayed. Réf : compare_scalability.odt 4 - Results Page 7/7