MemoryLint. Petr Nejedlý, Radim Kubacki SUN Microsystems, BOF-9066

Size: px
Start display at page:

Download "MemoryLint. Petr Nejedlý, Radim Kubacki SUN Microsystems, BOF-9066"

Transcription

1 MemoryLint Petr Nejedlý, Radim Kubacki SUN Microsystems, BOF JavaOne SM Conference Session BOF-9066

2 Goal Get ideas how to analyze content of Java heap Find how to analyze data structures of your application. Check for the patterns that reveals memory leaks, inefficient use of memory or other mistakes 2007 JavaOne SM Conference Session BOF

3 Agenda Motivation Existing tools Next step MemoryLint Q&A 2007 JavaOne SM Conference Session BOF

4 Agenda Motivation Existing tools Next step MemoryLint Q&A 2007 JavaOne SM Conference Session BOF

5 Motivation Why to use tools? Same errors are repeated They have to be checked and fixed again and again Patterns are often similar Evaluate larger data structures to get better picture of application behavior Memory consumption of module system, project infrastructure, editor's data 2007 JavaOne SM Conference Session BOF

6 Motivation Why to use tools? What can we automate? Pattern detection in... sources: PMD, Checkstyle bytecode: FindBugs data:??? Find problems as soon as possible during development Make it easy for everyone to run the scan 2007 JavaOne SM Conference Session BOF

7 Agenda Motivation Existing tools Next step MemoryLint Q&A 2007 JavaOne SM Conference Session BOF

8 Existing tools What do we have now? Profilers Usually good for memory leak hunting Object count/sizes, retained size, reference path Requires skillset to find problems Hard to automate Generally can't do custom/advanced analysis 2007 JavaOne SM Conference Session BOF

9 Existing tools What do we have now? JHat/OQL Good concept Get a heap dump and analyze it in many ways Difficult to use Slow on larger heaps 2007 JavaOne SM Conference Session BOF

10 Agenda Motivation Existing tools Next step MemoryLint Q&A 2007 JavaOne SM Conference Session BOF

11 MemoryLint What is it? Automatic analysis tool Processes rules, provides report Extensible framework Has API for writing custom rules Builds on top of NetBeans Profiler's heap model Experimental platform... What kind of problematic patterns do you encounter?... but usable out of the box Few precooked rules, will demo them 2007 JavaOne SM Conference Session BOF

12 MemoryLint Overview JVM Memory Lint Results Heap dump Heap model Rules Profiler integration 2007 JavaOne SM Conference Session BOF

13 MemoryLint What do we look for? Known problems Memory leaks Memory waste CPU optimizations Correctness problems Interresting statistics Who uses all that HashMaps? Your ideas 2007 JavaOne SM Conference Session BOF

14 MemoryLint Rule examples Memory leaks UI widgets, documents, classloaders Improperly used WeakHashMap Memory waste String class: too many identical strings, oversized Retained memory Patterns HashMap with bad distribution of entries Cache statistics 2007 JavaOne SM Conference Session BOF

15 MemoryLint More ideas Duplicate listener registrations Sparsely populated arrays or duplicated entries Duplicated fields Unused/should-be-static fields Instances of Boolean IdentityHashMap with equal but not identical key (catch String only for example) Listener strongly reachable from singleton only WeakHashMap with most keys gone 2007 JavaOne SM Conference Session BOF

16 Rule Examples: String public final class String implements Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** The offset is the first index of the storage that is used private final int offset; /** The count is the number of characters in the String. */ private final int count; /** Cache the hash code for the string */ private int hash; // Default to JavaOne SM Conference Session BOF

17 Rule Examples: String // curroff is 5631, len is 3 String s = doccontent.substring (curroff, len); 2007 JavaOne SM Conference Session BOF

18 Rule Examples: HashMap Chaining of entries with bad hash function HashMap table Entry[] Entry next Entry next Entry next 2007 JavaOne SM Conference Session BOF

19 Rule Examples: LeakHashMap Weak key strongly reachable from value WeakHashMap table Entry[] Entry referent value value key heap 2007 JavaOne SM Conference Session BOF

20 DEMO Samples 2007 JavaOne SM Conference Session BOF

21 Rule's Anatomy public class MyRule extends IteratingRule { public MyRule() { super( name, desc, classnamepattern ); } /** Called once for each rule to prepare helpers. */ protected void preparerule(memorylint context) {...} /** Called once for each heap instance matching the * classnamepattern. Can be called paralelly from * several worker threads. */ protected void perform(instance in) {...} /** Called once all matching instances processed. Allows * to compute and push the results lately */ protected void summary() {...}... } 2007 JavaOne SM Conference Session BOF

22 Summary Memory problems are common Memory problems repeat Solving memory problems needs to be simplified (automated) You may be surprised how much low hanging fruit can be hidden in your application... we were ourselves JavaOne SM Conference Session BOF

23 For More Information List JavaOne SM Conference Session BOF

24 Q&A Petr Nejedlý Radim Kubacki 2007 JavaOne SM Conference Session BOF

Test Patterns in Java

Test Patterns in Java Test Patterns in Java Jaroslav Tulach, Jesse Glick, Miloš Kleint Sun Microsystems http://www.netbeans.org 2006 JavaOne SM Conference Session BOF 0220 Automated Testing Test is a Kind of Documentation Learn

More information

From Java Code to Java Heap Understanding the Memory Usage of Your Application

From Java Code to Java Heap Understanding the Memory Usage of Your Application Chris Bailey IBM Java Service Architect 3 rd October 2012 From Java Code to Java Heap Understanding the Memory Usage of Your Application 2012 IBM Corporation Important Disclaimers THE INFORMATION CONTAINED

More information

NetBeans Rich Client Platform Simpletests. Anton Epple Eppleton IT Consulting

NetBeans Rich Client Platform Simpletests. Anton Epple Eppleton IT Consulting Simpletests NetBeans Rich Client Platform Simpletests Anton Epple Eppleton IT Consulting Unit tests for RCP Applications Introduced in 6.5 Before: Xtest infrastructure Unit & Functional Tests hard to set

More information

Bugs in software. Using Static Analysis to Find Bugs. David Hovemeyer

Bugs in software. Using Static Analysis to Find Bugs. David Hovemeyer Bugs in software Programmers are smart people We have good techniques for finding bugs early: Unit testing, pair programming, code inspections So, most bugs should be subtle, and require sophisticated

More information

Effective Java Heap Memory Analysis on Enterprise-Scale SAP Memory Analyzer. Vedran Lerenc, SAP NetWeaver Java Server Technology October 11th 2007

Effective Java Heap Memory Analysis on Enterprise-Scale SAP Memory Analyzer. Vedran Lerenc, SAP NetWeaver Java Server Technology October 11th 2007 Effective Java Heap Memory Analysis on Enterprise-Scale SAP Memory Analyzer Vedran Lerenc, SAP NetWeaver Java Server Technology October 11th 2007 Memory 101 Heap MB Full Garbage Collection 2 a.m. Out Of

More information

Building a Java ME Test Suite in 15 Minutes

Building a Java ME Test Suite in 15 Minutes Building a Java ME Test Suite in 15 Minutes Mikhail Gorshenev, Senior Staff Engineer Roman Zelov, Member of Technical Staff Alexander Glasman, Member of Technical Staff Sun Microsystems, Inc. http://www.sun.com/

More information

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?

More information

Efficient Java (with Stratosphere) Arvid Heise, Large Scale Duplicate Detection

Efficient Java (with Stratosphere) Arvid Heise, Large Scale Duplicate Detection Efficient Java (with Stratosphere) Arvid Heise, Large Scale Duplicate Detection Agenda 2 Bottlenecks Mutable vs. Immutable Caching/Pooling Strings Primitives Final Classloaders Exception Handling Concurrency

More information

Managed runtimes & garbage collection

Managed runtimes & garbage collection Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security

More information

Java Garbage Collection. Carol McDonald Java Architect Sun Microsystems, Inc.

Java Garbage Collection. Carol McDonald Java Architect Sun Microsystems, Inc. Java Garbage Collection Carol McDonald Java Architect Sun Microsystems, Inc. Speaker Carol cdonald: > Java Architect at Sun Microsystems > Before Sun, worked on software development of: >Application to

More information

LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device

LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device LAB-6340: Advanced Java ME Programming - Streaming Video From Server to Your Device Lukas Hasik, Fabiola Galleros Rios Software Engineer, Mobility Pack QE Sun Microsystems Inc. http://www.sun.com 2007

More information

NASA World Wind Java SDK

NASA World Wind Java SDK NASA World Wind Java SDK Tom Gaskins NWW Technical Director http://worldwind.arc.nasa.gov TS-3489 2007 JavaOne SM Conference Session TS-3489 Today s Agenda Build an Application Deploy with Java Web Start

More information

Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review

Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review Review Date: 28 April 2010 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/forums/index.php?t=thread&frm_id=62& Author:

More information

Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine

Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine Eugene Kuleshov, Terracotta Tim Eck, Terracotta Tom Ware, Oracle Corporation Charles Nutter, Sun Microsystems, Inc.

More information

Product Updates TPFUG 2019, Denver

Product Updates TPFUG 2019, Denver 1 Product Updates TPFUG 2019, Denver Agenda ztpfgi Releases JavaNow Multiple System Support DFDL with Rest API zqdc Automation Dump Viewer Source, TPFDF, DETAC Color Customization Other Enhancements ztpfgi

More information

Java Language Modularity With Superpackages

Java Language Modularity With Superpackages Java Language Modularity With Superpackages Alex Buckley JSR 294 Co-spec lead Sun Microsystems Andreas Sterbenz JSR 294 Co-spec lead Sun Microsystems TS-2401 2007 JavaOne SM Conference Session 2401 Goal

More information

Programming Web Apps for Tiny Devices with Java Card 3.0 Connected Edition

Programming Web Apps for Tiny Devices with Java Card 3.0 Connected Edition Programming Web Apps for Tiny Devices with Java Card 3.0 Connected Edition Laurent LAGOSANTO Jean-Jacques VANDEWALLE Patrick VAN HAVER TS-5910 Discover the features of Java Card platform 3.0 Connected

More information

Practical Lessons in Memory Analysis

Practical Lessons in Memory Analysis Practical Lessons in Memory Analysis Krum Tsvetkov SAP AG Andrew Johnson IBM United Kingdom Limited GOAL > Learn practical tips and tricks for the analysis of common memory-related problems 2 Agenda >

More information

AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES

AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES AUTOMATED HEAPDUMP ANALYSIS FOR DEVELOPERS, TESTERS, AND SUPPORT EMPLOYEES Krum Tsvetkov Andreas Buchen TS-5729 Find memory leaks WITHOUT working with Memory Analyzer 2008 JavaOne SM Conference java.sun.com/javaone

More information

Swinging from the Outside

Swinging from the Outside Swinging from the Outside A guide to navigating Swing from the outside of Sun Brian Mason, Dir Software of Engineering, Teseda S295599 Space is big, really big. You might think it is a long way down to

More information

Enough java.lang.string to Hang Ourselves...

Enough java.lang.string to Hang Ourselves... Enough java.lang.string to Hang Ourselves... Dr Heinz M. Kabutz Last Updated 2018-06-19 2018 Heinz Kabutz, All Rights Reserved !2 Converting int val to a String? 1."" + val 2.Integer.toString(val) 3.Integer.valueOf(val)

More information

Bill Bridge. Oracle Software Architect NVM support for C Applications

Bill Bridge. Oracle Software Architect NVM support for C Applications JANUARY 20, 2015, SAN JOSE, CA Bill Bridge PRESENTATION TITLE GOES HERE Place Speaker Photo Here if Available Oracle Software Architect NVM support for C Applications Overview Oracle has developed a NVM

More information

Building Memory-efficient Java Applications: Practices and Challenges

Building Memory-efficient Java Applications: Practices and Challenges Building Memory-efficient Java Applications: Practices and Challenges Nick Mitchell, Gary Sevitsky (presenting) IBM TJ Watson Research Center Hawthorne, NY USA Copyright is held by the author/owner(s).

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Part 3: Design case studies Performance Charlie Garrod Michael Hilton School of Computer Science 1 Administriva Homework 4b due Thursday,

More information

Writing a Sony PlayStation Emulator Using Java Technology

Writing a Sony PlayStation Emulator Using Java Technology Writing a Sony PlayStation Emulator Using Java Technology Graham Sanderson Matt Howitt Lombardi Software www.lombardisoftware.com TS-5547 2006 JavaOne SM Conference Session TS-5547 High Performance Java

More information

Basic Steps and Features Walk-through

Basic Steps and Features Walk-through Welcome to the SAP Memory Analyzer SAP Memory Analyzer: Basic Steps and Features Walk-through SAP AG 2007, Memory Analysis with SAP Memory Analyzer / 1 Basic Steps with SAP Memory Analyzer (1) Get Heap

More information

(f) Given what we know about linked lists and arrays, when would we choose to use one data structure over the other?

(f) Given what we know about linked lists and arrays, when would we choose to use one data structure over the other? CSM B Hashing & Heaps Spring 0 Week 0: March 0, 0 Motivation. (a) In the worst case, how long does it take to index into a linked list? Θ(N) (b) In the worst case, how long does it take to index into an

More information

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1 Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies

More information

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! TS-6824 JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! Brendan Murray Software Architect IBM http://www.ibm.com 2007 JavaOne SM Conference Session TS-6824 Goal Why am I here?

More information

Real Time: Understanding the Trade-offs Between Determinism and Throughput

Real Time: Understanding the Trade-offs Between Determinism and Throughput Real Time: Understanding the Trade-offs Between Determinism and Throughput Roland Westrelin, Java Real-Time Engineering, Brian Doherty, Java Performance Engineering, Sun Microsystems, Inc TS-5609 Learn

More information

Eclipse Memory Analyzer Release Review 0.8

Eclipse Memory Analyzer Release Review 0.8 Eclipse Memory Analyzer Release Review 0.8 Review Date: May 29, 2008 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.memory-analyzer

More information

Emulating the Java ME Platform on Java SE

Emulating the Java ME Platform on Java SE Emulating the Java ME Platform on Java SE Kenneth Russell Tony Wyant Sun Microsystems, Inc. Session TS-2515 2007 JavaOne SM Conference Session TS-2515 Goal of This Talk Learn advanced uses of Java bytecode

More information

Bringing Life to Swing Desktop Applications

Bringing Life to Swing Desktop Applications Bringing Life to Swing Desktop Applications Alexander Potochkin Sun Microsystems Kirill Grouchnikov Amdocs Inc. TS-3414 2007 JavaOne SM Conference Session TS-3414 Presentation Goal Learn advanced painting

More information

Static Code Analysis to Find Bugs. Wright.edu CS7140 Spring 2013 (Slides collected from many sources)

Static Code Analysis to Find Bugs. Wright.edu CS7140 Spring 2013 (Slides collected from many sources) Static Code Analysis to Find Bugs Wright.edu CS7140 Spring 2013 (Slides collected from many sources) Comparison of Defect-Detection Approaches Inspections? The combination of design and code inspections

More information

ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA. 18 October 2017

ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA. 18 October 2017 ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA 18 October 2017 Who am I? Working in Performance and Reliability Engineering Team at Hotels.com Part of Expedia Inc, handling $72billion

More information

Chair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 10

Chair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 10 Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Exercise Session 10 Today s Exercise Session Pattern of the Day Proxy Quizzes 2 Proxy Pattern Structural

More information

ABL source code analysis with SonarQube. Gilles QUERRET Riverside Software

ABL source code analysis with SonarQube. Gilles QUERRET Riverside Software ABL source code analysis with SonarQube Gilles QUERRET Riverside Software SonarQube SonarQube is a platform to manage code quality Free, open source, LGPL, web-based portal Backed by SonarSource Aggregates

More information

Defective Java Code: Turning WTF code into a learning experience

Defective Java Code: Turning WTF code into a learning experience Defective Java Code: Turning WTF code into a learning experience William Pugh, Professor, Univ. of Maryland TS-6589 Examine some defective Java code to become a better developer, and discuss how to turn

More information

Using Aspect-Oriented Programming to Streamline Mobile Application Development

Using Aspect-Oriented Programming to Streamline Mobile Application Development Allen Lau TS-5363 Using Aspect-Oriented Programming to Streamline Mobile Application Development CTO and Co-Founder Tira Wireless tirawireless.com 2007 JavaOne SM Conference Session TS-5363 Goal of This

More information

Defective Java Code: Turning WTF code into a learning experience

Defective Java Code: Turning WTF code into a learning experience Defective Java Code: Turning WTF code into a learning experience William Pugh, Professor, Univ. of Maryland TS-6589 Examine some defective Java code to become a better developer, and discuss how to turn

More information

JCudaMP: OpenMP/Java on CUDA

JCudaMP: OpenMP/Java on CUDA JCudaMP: OpenMP/Java on CUDA Georg Dotzler, Ronald Veldema, Michael Klemm Programming Systems Group Martensstraße 3 91058 Erlangen Motivation Write once, run anywhere - Java Slogan created by Sun Microsystems

More information

Singleton. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 29

Singleton. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 29 Singleton Computer Science and Engineering College of Engineering The Ohio State University Lecture 29 Preventing Instantiation Default (zero-argument) constructor Provided only if there is no explicit

More information

Java performance - not so scary after all

Java performance - not so scary after all Java performance - not so scary after all Holly Cummins IBM Hursley Labs 2009 IBM Corporation 2001 About me Joined IBM Began professional life writing event framework for WebSphere 2004 Moved to work on

More information

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan) Sun Java Studio Creator Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan) Agenda Background Developer characteristics Corporate developers Sun Java Studio Creator

More information

Fall 2017 Mentoring 9: October 23, Min-Heapify This. Level order, bubbling up. Level order, bubbling down. Reverse level order, bubbling up

Fall 2017 Mentoring 9: October 23, Min-Heapify This. Level order, bubbling up. Level order, bubbling down. Reverse level order, bubbling up CSM B Heaps & Hashing Fall 0 Mentoring : October 3, 0 Min-Heapify This. In general, there are 4 ways to heapify. Which ways actually work? Level order, bubbling up Level order, bubbling down Reverse level

More information

JRuby: Bringing Ruby to the JVM

JRuby: Bringing Ruby to the JVM JRuby: Bringing Ruby to the JVM Thomas E. Enebo Aandtech Inc. Charles Oliver Nutter Ventera Corp http://www.jruby.org TS-3059 2006 JavaOne SM Conference Session TS-3059 JRuby Presentation Goal Learn what

More information

CS 11 java track: lecture 1

CS 11 java track: lecture 1 CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml

More information

IBD Intergiciels et Bases de Données

IBD Intergiciels et Bases de Données IBD Intergiciels et Bases de Données RMI-based distributed systems Fabien Gaud, Fabien.Gaud@inrialpes.fr Overview of lectures and practical work Lectures Introduction to distributed systems and middleware

More information

Testing Concurrent Software

Testing Concurrent Software Testing Concurrent Software Bill Pugh Professor of Computer Science, University of Maryland Brian Goetz Senior Staff Engineer, Sun Microsystems Cliff Click Distinguished Engineer, Azul Systems TS-2220

More information

Atomicity CS 2110 Fall 2017

Atomicity CS 2110 Fall 2017 Atomicity CS 2110 Fall 2017 Parallel Programming Thus Far Parallel programs can be faster and more efficient Problem: race conditions Solution: synchronization Are there more efficient ways to ensure the

More information

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem

More information

CQ Beacon Android SDK V2.0.1

CQ Beacon Android SDK V2.0.1 Copyright 2014 ConnectQuest, LLC 1 CQ Beacon Android SDK V2.0.1 Software Requirements: Android 4.3 or greater SDK Support Page: http://www.connectquest.com/app- developers/android- api/ The CQ SDK package

More information

High Performance Clients 1

High Performance Clients 1 High Performance Clients 1 Minimizing Startup Time java.sun.com/javaone/sf Radim Kubacki Petr Nejedly Kenneth Russell Sun Microsystems, Inc. 1 Presentation Goal Provide techniques for reducing the startup

More information

Introduction To NetBeans 5.5

Introduction To NetBeans 5.5 Sun Microsystems, Inc. Introduction To NetBeans 5.5 Gregg Sporar NetBeans Technology Evangelist gregg.sporar@sun.com Agenda What Is NetBeans? What Is GlassFish/Sun Java System Application Server? NetBeans

More information

New Compiler Optimizations in the Java HotSpot Virtual Machine

New Compiler Optimizations in the Java HotSpot Virtual Machine New Compiler Optimizations in the Java HotSpot Virtual Machine Steve Dever Steve Goldman Kenneth Russell Sun Microsystems, Inc. TS-3412 Copyright 2006, Sun Microsystems Inc., All rights reserved. 2006

More information

Effec%ve So*ware. Lecture 9: JVM - Memory Analysis, Data Structures, Object Alloca=on. David Šišlák

Effec%ve So*ware. Lecture 9: JVM - Memory Analysis, Data Structures, Object Alloca=on. David Šišlák Effec%ve So*ware Lecture 9: JVM - Memory Analysis, Data Structures, Object Alloca=on David Šišlák david.sislak@fel.cvut.cz JVM Performance Factors and Memory Analysis» applica=on performance factors total

More information

Lecture 18. Collision Resolution

Lecture 18. Collision Resolution Lecture 18 Collision Resolution Introduction In this lesson we will discuss several collision resolution strategies. The key thing in hashing is to find an easy to compute hash function. However, collisions

More information

Domain-Driven Design Activity

Domain-Driven Design Activity Domain-Driven Design Activity SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Entities and Value Objects are special types of objects

More information

JSR 311: JAX-RS: The Java API for RESTful Web Services

JSR 311: JAX-RS: The Java API for RESTful Web Services JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda

More information

Interview Questions I received in 2017 and 2018

Interview Questions I received in 2017 and 2018 Interview Questions I received in 2017 and 2018 Table of Contents INTERVIEW QUESTIONS I RECEIVED IN 2017 AND 2018... 1 1 OOPS... 3 1. What is the difference between Abstract and Interface in Java8?...

More information

Java One 2007 Conference Notes Juixe

Java One 2007 Conference Notes Juixe Java One 2007 Conference Notes By Juixe Monday, May 7... 4 Welcome to CommunityOne 2007... 4 Getting Started and What's New in GlassFish v2... 5 Lunch with the Java Posse... 5 Ajax Applications Made Easy

More information

Java Roads Less Traveled

Java Roads Less Traveled Java Roads Less Traveled Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Gary Murphy Java Roads Less Traveled Page 1 Motivation Java is a large development system with lots of class libraries and

More information

Bug Hunting and Static Analysis

Bug Hunting and Static Analysis Bug Hunting and Red Hat Ondřej Vašík and Petr Müller 2011-02-11 Abstract Basic overview of common error patterns in C/C++, few words about defensive programming

More information

Sicherheit beim Build

Sicherheit beim Build Sicherheit beim Build Java Forum Stuttgart 2017 Dominik Schadow bridgingit Verify your security activities Integration into the build pipeline Find security issues as early as possible Catch the low hanging

More information

Testing Concurrent Software

Testing Concurrent Software Testing Concurrent Software Bill Pugh Professor of Computer Science, University of Maryland Brian Goetz Senior Staff Engineer, Sun Microsystems Cliff Click Distinguished Engineer, Azul Systems TS-2220

More information

JSR 292 Cookbook: Fresh Recipes with New Ingredients

JSR 292 Cookbook: Fresh Recipes with New Ingredients JSR 292 Cookbook: Fresh Recipes with New Ingredients John Rose Christian Thalinger Sun Microsystems Overview Got a language cooking on the JVM? JSR 292, a set of major changes to the JVM architecture,

More information

Concepts of Object-Oriented Programming Peter Müller

Concepts of Object-Oriented Programming Peter Müller Concepts of Object-Oriented Programming Peter Müller Chair of Programming Methodology Autumn Semester 2017 1.2 Introduction Core Concepts 2 Meeting the Requirements Cooperating Program Parts with Well-Defined

More information

Petr Suchomel Architect, NetBeans Mobility

Petr Suchomel Architect, NetBeans Mobility NetBeans 6.0 A Fresh Look into Java Development Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda The NetBeans IDE, Platform, Community What's new in NetBeans 6.0 Quick look over NetBeans

More information

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008 Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread

More information

Introduction to Java

Introduction to Java Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn

More information

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY Kenneth Saks Senior Staff Engineer SUN Microsystems TS-5343 Learn what is planned for the next version of Enterprise JavaBeans (EJB ) technology 2008 JavaOne

More information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13. IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent 6.3.1 Fix Pack 13 Reference IBM IBM Tivoli Composite Application Manager for Microsoft Applications:

More information

Incremental Evaluation of OCL invariants in the Essential MOF object model

Incremental Evaluation of OCL invariants in the Essential MOF object model Incremental Evaluation of OCL invariants in the Essential MOF object model Miguel Garcia, Ralf Möller http://www.sts.tu-harburg.de/~mi.garcia 2008-03-12 Agenda Problem Statement The tools at our disposal:

More information

Day 6. COMP1006/1406 Summer M. Jason Hinek Carleton University

Day 6. COMP1006/1406 Summer M. Jason Hinek Carleton University Day 6 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments Assignment 3 is due on Monday a quick look back abstract classes and interfaces casting objects abstract data

More information

Concepts of Object-Oriented Programming Peter Müller

Concepts of Object-Oriented Programming Peter Müller Concepts of Object-Oriented Programming Peter Müller Chair of Programming Methodology Autumn Semester 2017 1.2 Introduction Core Concepts 2 Meeting the Requirements Cooperating Program Parts with Well-Defined

More information

Twelve Reasons To Use NetBeans Software Episode 2

Twelve Reasons To Use NetBeans Software Episode 2 Twelve Reasons To Use NetBeans Software Episode 2 Inyoung Cho Tim Cramer Java Technology Evangelist Director of Developer Tools Charles Ditzel Tim Boudreau Technologist NetBeans Evangelist Sun Microsystems,

More information

CS61BL Summer 2013 Midterm 2

CS61BL Summer 2013 Midterm 2 CS61BL Summer 2013 Midterm 2 Sample Solutions + Common Mistakes Question 0: Each of the following cost you.5 on this problem: you earned some credit on a problem and did not put your five digit on the

More information

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Pavel Petroshenko, Sun Microsystems, Inc. Ashmi Bhanushali, NVIDIA Corporation Jerry Evans, Sun Microsystems, Inc. Nandini

More information

Creating Manageable Systems With JMX, Spring, AOP, and Groovy

Creating Manageable Systems With JMX, Spring, AOP, and Groovy Creating Manageable Systems With JMX, Spring, AOP, and Groovy Vladimir Vivien Sr. Software Engineer Simplius, LLC http://simpli.us/ TS-1106 2007 JavaOne SM Conference Session TS-1106 Goal Build runtime

More information

Who is our rival? Upcoming. Testing. Ariane 5 rocket (1996) Ariane 5 rocket 3/8/18. Real programmers need no testing!

Who is our rival? Upcoming. Testing. Ariane 5 rocket (1996) Ariane 5 rocket 3/8/18. Real programmers need no testing! Upcoming Homework 3 posted; due March 22 Literature review due March 20 Testing Paper presentation instructions posted: http://people.cs.umass.edu/~brun/class/2018spring/cs621/paperpresentation/paperpresentation.pdf

More information

Borland Optimizeit Enterprise Suite 6

Borland Optimizeit Enterprise Suite 6 Borland Optimizeit Enterprise Suite 6 Feature Matrix The table below shows which Optimizeit product components are available in Borland Optimizeit Enterprise Suite and which are available in Borland Optimizeit

More information

Advanced programming for Java platform. Introduction

Advanced programming for Java platform. Introduction Advanced programming for Java platform Introduction About course Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/teaching/vsjava/ continuation of "Java (NPRG013)" basic knowledge of Java

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

The Proxy Pattern. Design Patterns In Java Bob Tarr

The Proxy Pattern. Design Patterns In Java Bob Tarr The Proxy Pattern Intent Provide a surrogate or placeholder for another object to control access to it Also Known As Surrogate Motivation A proxy is a person authorized to act for another person an agent

More information

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks)

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks) COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks) Problem Description Using a client-server architecture, design and implement a multi-threaded server that allows

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

IWOMP Dresden, Germany

IWOMP Dresden, Germany IWOMP 2009 Dresden, Germany Providing Observability for OpenMP 3.0 Applications Yuan Lin, Oleg Mazurov Overview Objective The Data Model OpenMP Runtime API for Profiling Collecting Data Examples Overhead

More information

Selected Java Topics

Selected Java Topics Selected Java Topics Introduction Basic Types, Objects and Pointers Modifiers Abstract Classes and Interfaces Exceptions and Runtime Exceptions Static Variables and Static Methods Type Safe Constants Swings

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

Class, Variable, Constructor, Object, Method Questions

Class, Variable, Constructor, Object, Method Questions Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx

More information

Adding Telephony to Java Technology-Based Enterprise Applications

Adding Telephony to Java Technology-Based Enterprise Applications Adding Telephony to Java Technology-Based Enterprise Applications Jonathan Kaplan & Sreeram Duvur Researcher/Architect Sun Microsystems, Inc. http://glassfish.dev.java.net/ TS-4919 2007 JavaOne SM Conference

More information

Eclipse Memory Analyzer Release Review

Eclipse Memory Analyzer Release Review Eclipse Memory Analyzer Release Review Review Date: Dec 10, 2008 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.memory-analyzer Author:

More information

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java

More information

Workaround Swing Bugs

Workaround Swing Bugs Workaround Swing Bugs David Qiao, JIDE Software, Inc. BOF-5133 Background of Myself and JIDE CTO and Founder of JIDE Software, Inc. Heavily use Swing in the last several years Build components and frameworks

More information

Linked Lists: Locking, Lock-Free, and Beyond. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit

Linked Lists: Locking, Lock-Free, and Beyond. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Linked Lists: Locking, Lock-Free, and Beyond Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Concurrent Objects Adding threads should not lower throughput Contention

More information

Topic 6: Inner Classes

Topic 6: Inner Classes Topic 6: Inner Classes What's an inner class? A class defined inside another class Three kinds: inner classes static nested classes anonymous classes this lecture: Java mechanisms later: motivation & typical

More information

Servlet Performance and Apache JServ

Servlet Performance and Apache JServ Servlet Performance and Apache JServ ApacheCon 1998 By Stefano Mazzocchi and Pierpaolo Fumagalli Index 1 Performance Definition... 2 1.1 Absolute performance...2 1.2 Perceived performance...2 2 Dynamic

More information

Software Engineering Large Practical: Preferences, storage, and testing

Software Engineering Large Practical: Preferences, storage, and testing Software Engineering Large Practical: Preferences, storage, and testing Stephen Gilmore (Stephen.Gilmore@ed.ac.uk) School of Informatics November 9, 2016 Contents A simple counter activity Preferences

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information