Optimizing Generation of Object Graphs in Java PathFinder
|
|
|
- Lionel Henderson
- 10 years ago
- Views:
Transcription
1 Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric, Tihomir Gvero, Steven Lauterburg, Darko Marinov, Sarfraz Khurshid JPF Workshop 1.5.8
2 Bugs Six Decades Ago 1947: Harvard Mark II Photo: National Museum of American History 2
3 Mars Polar Lander, 1999 Crashed premature shut down at 40 meters altitude Photos: JPL/NASA 3
4 USS Yorktown, 1997 Dead in the water for 3 hours Photo: navsource.org 4
5 Java PathFinder Java PathFinder (JPF) is a popular explicit-state model checker Directly checks properties of a wide range of Java programs Implements a customized Java Virtual Machine Runs on the top of the host JVM Two key operations for explicit state-space search: State backtracking: stores/restores state to backtrack the execution during the state-space exploration Control over non-deterministic choices (including thread scheduling) Traditional focus: check properties of control, such as deadlock Recent work: also check properties of data, such as acyclicity 5
6 Structurally Complex Data size: 9 7 root city washington building service camera data-type accessibility public resolution 4 6 whitehouse wing picture 640 x 480 room oval-office west [city = washington [building = whitehouse [wing = west [room = oval-office]]]] [service = camera [data-type = picture [format = jpg]] [resolution = 640x480]] [accessibility = public] 6
7 Korat Framework Enables systematic, constraint-based testing E.g., testing on all small inputs constraint solve instances concretize tests Implements a constraint solver for imperative predicates Takes two inputs: A Java predicate that encodes constraints that represent properties of desired object graphs A bound on the size of the graph Generates all valid graphs (within the given bound) Performs a backtracking search Systematically explores the bounded space of object graphs 7
8 Korat in JPF Korat solver was originally developed from scratch However, it can leverage tools, such as model checkers, which support backtracking as a fundamental operation JPF has been used to generate object graphs We use JPF as an implementation engine for Korat Start with a simple instrumentation of the Java predicate Observe that a direct implementation makes generation of object graphs unnecessarily slow in JPF Explore changes (optimizations) that could speed-up Korat in JPF 8
9 JPF State Operations JPF uses a special representation for the state of program it checks It performs three basic kinds of operations on the state representation: Bytecode execution: manipulates the state to execute the program bytecodes State backtracking: stores/restores state to backtrack the execution during the state-space exploration State comparison: detects cycles in the state space Our changes target each of these operations 9
10 Outline Overview Example Korat search in JPF Optimizing Korat search in JPF Evaluation Conclusions 10
11 Example Korat Input A set implemented as a red-black tree public class RedBlackTree { Node root; int size; static class Node { int element; boolean color; Node left, right, parent;... } boolean repok() { if (!istree()) return false; if (!haspropercolors()) return false; if (!areelementsordered()) return false; return true; } boolean istree() { if (root == null) return size == 0; // is size correct if (root.parent!= null) return false; // incorrect parent Set<Node> visited = Factory.<Node>createSet(); visited.add(root); Queue<Node> worklist = Factory.<Node>createQueue(); worklist.add(root); while (!worklist.isempty()) { Node current = worklist.remove(); if (current.left!= null) { if (!visited.add(current.left)) return false; // not a tree if (current.left.parent!= current) return false; // incorrect parent worklist.add(current.left); }... // analogous for current.right } return visited.size() == size; // is size correct } }
12 Korat Input and Output Input: Method repok checks whether an object graph indeed represents a valid red-black tree Finitization provides: A bound for the number of objects of each class in one graph, e.g., number N of Node objects A set of values for each field of those objects E.g., root, left, right, and parent are either null or point to one of the N Node objects Output: Enumeration of all valid non-isomorphic object graphs, within the bounds given in the finitization E.g., all valid red-black trees within the bounds 12
13 Korat Search Systematically explores the bounded input space Orders values for each field to build its field domain Starts the search using candidate with all fields set to the first value in their domain Executes repok on the candidate Monitors repok s execution dynamically Records the field access order according to first access Generates the next candidate based on the execution Backtracks on the last field in field access order Prunes the search Avoids equivalent candidates Uses bytecode instrumentation to insert monitors 13
14 Korat Search in JPF Simple implementation of Korat using code instrumentation Use Verify.getInt, which returns a non-deterministic value, to index into a field domain Use shadow boolean fields to monitor field accesses Track assigned objects of a field domain to ensure exploration of non-isomorphic structures 14
15 Example: Code instrumentation in JPF public class RedBlackTree { // data for finitization and search static Node[] nodes; static int assigned_nodes; static int min_size; static int max_size; // instrumentation for "root" field Node root; boolean init_root = false; Node get_root() { if (!init_root) { init_root = true; int i = Verify.getInt(0, min(assigned_nodes + 1, nodes.length - 1)); if (i == assigned_nodes + 1) assigned_nodes++; root = nodes[i]; } return root; } // instrumentation for "size" field int size; boolean init_size = false; int get_size() { if (!init_size) { init_size = true; size = Verify.getInt(min_size, max_size); } return size; } static class Node {... // analogous instrumentation for each field } boolean repok() {... /* same as before*/} boolean istree() { if (get_root() == null) return get_size() == 0; if (get_root().get_parent()!= null) return false;... // replace read of each field "f" // with a call to "get_f" method } 15
16 Example: Finitization in JPF // "N" is the bound for finitization static void main(int N) { nodes = new Node[N + 1]; // nodes[0] = null; for (int i = 1; i < nodes.length; i++) nodes[i] = new Node(); min_size = max_size = N; RedBlackTree rbt = new RedBlackTree(); // this one call to "repok" will backtrack a number of times, // setting the fields of objects reachable from "rbt" if (rbt.repok()) print(rbt); }... // end of class RedBlackTree } A bound for the number of objects of each class 16
17 Optimizing Search in JPF Groups of changes made in JPF: Modifying interpreter Reducing state comparison costs Reducing backtracking costs for heap Reducing bytecode execution costs Reducing costs for stacks and threads Reducing other overhead costs These changes reduce the search time by over an order of magnitude 17
18 Modifying Interpreter Idea: instead of code instrumentation, change the interpreter itself Modified the class that implements the bytecode that reads a field from an object To check whether a field is initialized If not to create a non-deterministic choice point No need to instrument the code Makes it much easier to use Korat on JPF 18
19 Reducing State Comparison Costs JPF is a stateful model checker: Stores (hash value of) the states that it visits Compares (hash value of) newly encountered states with the visited states Idea: disable state comparison Korat search does not need any state comparison The search always produces different states 19
20 Reducing State Comparison Costs (2) Idea: reduce garbage collection (GC) GC helps the state comparison Unnecessary to perform GC that often Perform GC occasionally, only to reduce the amount of memory 20
21 Reducing Backtracking Costs for Heap State backtracking is expensive operation Storing and restoring the entire JVM states at the choice points Idea: undo backtracking Incrementally stores and restores states Only keeps track of the state changes that happen between choice points Later restores the state by undoing these state changes 21
22 Undo Backtracking An execution of a field assignment root.right = null 1 2 execution: remember change n2.left n2.right n2.left n2.right n1 n3 n1 null 22
23 Undo Backtracking (2) Reduces the execution time as it does not require JPF to clone the integer array that encodes all fields of an object whose one field is being written to root.right = null 1 2 execution: remember change n2.left n2.right n2.left n2.right n1 n3 n1 null backtracking: undo change 23
24 Reducing Backtracking Costs for Heap (2) Idea: special handling of singleton non-deterministic choice Verify.getInt(int lo, int hi) does not need to create a backtracking point if lo == hi Both Undo backtracking and Singleton non-deterministic choice changes have been added to JPF and are publicly available 24
25 Reducing Bytecode Execution Costs JPF is an interpreter for Java bytecodes For most bytecodes, JPF simply performs as a regular JVM Slow in executing even regular bytecodes Idea: use simple collections repok methods build fairly small collections A simple library of collections that execute faster on JPF, when collections are small Idea: execute on JVM Moving our library structures execution from the JPF level to the underlying JVM level 25
26 Reducing Costs for Stacks and Threads A major portion of JPF time goes on manipulation of stacks and threads Idea: optimize stack handling Simplify stack frames Shallow cloning rather than deep cloning of some stack frames Avoids copy on write when a stack frame is not shared Idea: optimize thread handling Korat operates on single-threaded code Unnecessary to pay the overhead for multi-threaded code Recall DynamicAreaIndex triples that Peter mentioned 26
27 Reducing Other Overhead Costs JPF is built as an extensible tool JPF uses: Listeners Logging Listeners and logging provide overhead in execution even when they are not needed Configuration flag to turn off listeners and logging 27
28 Evaluation: Time Speedup Experiment Subject BinaryTree BinHeap DisjSet DoublyLL FaultTree HeapArray RedBlackTree SearchTree SinglyLL SortedList N Base 1, , , , , , Mode 1 1, , , , , , Mode , , Time (sec) Mode , Mode Mode Exploration time for various modications to basic Mode Time speedup 31.29x 13.25x 13.12x 19.01x 10.58x 17.40x 11.45x 14.95x 24.32x 22.96x Mode 1: Modifying interpreter Mode M: includes all of the optimizations used in Mode M-1 Mode 2: Reducing state comparison costs Mode 3: Reducing backtracking costs for heap Mode 4: Reducing bytecode execution costs Mode 5: Reducing costs for stacks and threads Mode 6: Reducing other overhead costs Modifications of JPF reduce the search time by over an order of magnitude 28
29 Evaluation: Memory Savings Experiment Peak Memory (MB) Memory Subject N Base Mode 2 Mode 6 savings BinaryTree x BinHeap x DisjSet x DoublyLL x FaultTree x HeapArray x RedBlackTree x SearchTree x SinglyLL x SortedList x Peak memory for selected modifications to basic Used Sun's jstat monitoring tool to measure the peak usage of garbage-collected heap 29
30 Summary Implemented the Korat search algorithm in JPF A basic implementation results in an slow search Modified several core operations of JPF to speed up the search Our modifications reduce the search time in JPF by over an order of magnitude Two modifications are already included in the publicly available JPF Future work JPF as a solver for constraints in other languages Parallelize JPF constraint solver 30
Optimizing Generation of Object Graphs in Java PathFinder
Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric Tihomir Gvero University of Belgrade Belgrade, Serbia {milos.gligoric,[email protected] Steven Lauterburg Darko Marinov University
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
Java's garbage-collected heap
Sponsored by: This story appeared on JavaWorld at http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html Java's garbage-collected heap An introduction to the garbage-collected heap of the Java
Persistent Binary Search Trees
Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Trace-Based and Sample-Based Profiling in Rational Application Developer
Trace-Based and Sample-Based Profiling in Rational Application Developer This document is aimed at highlighting the importance of profiling in software development and talks about the profiling tools offered
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
Java Coding Practices for Improved Application Performance
1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
Performance Improvement In Java Application
Performance Improvement In Java Application Megha Fulfagar Accenture Delivery Center for Technology in India Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Agenda Performance
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic
CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
Java Troubleshooting and Performance
Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant
B M C S O F T W A R E, I N C. PATROL FOR WEBSPHERE APPLICATION SERVER BASIC BEST PRACTICES Ross Cochran Principal SW Consultant PAT R O L F O R W E B S P H E R E A P P L I C AT I O N S E R V E R BEST PRACTICES
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
A Practical Method to Diagnose Memory Leaks in Java Application Alan Yu
A Practical Method to Diagnose Memory Leaks in Java Application Alan Yu 1. Introduction The Java virtual machine s heap stores all objects created by a running Java application. Objects are created by
Write Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, [email protected] ABSTRACT We present
Whitepaper: performance of SqlBulkCopy
We SOLVE COMPLEX PROBLEMS of DATA MODELING and DEVELOP TOOLS and solutions to let business perform best through data analysis Whitepaper: performance of SqlBulkCopy This whitepaper provides an analysis
Introduction of Virtualization Technology to Multi-Process Model Checking
Introduction of Virtualization Technology to Multi-Process Model Checking Watcharin Leungwattanakit [email protected] Masami Hagiya [email protected] Mitsuharu Yamamoto Chiba University
Binary Trees and Huffman Encoding Binary Search Trees
Binary Trees and Huffman Encoding Binary Search Trees Computer Science E119 Harvard Extension School Fall 2012 David G. Sullivan, Ph.D. Motivation: Maintaining a Sorted Collection of Data A data dictionary
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
C Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
Using jvmstat and visualgc to Solve Memory Management Problems
Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems
Restraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
Squashing the Bugs: Tools for Building Better Software
Squashing the Bugs: Tools for Building Better Software Stephen Freund Williams College The Blue Screen of Death (BSOD) USS Yorktown Smart Ship 27 Pentium-based PCs Windows NT 4.0 September 21, 1997: data
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
Cognos8 Deployment Best Practices for Performance/Scalability. Barnaby Cole Practice Lead, Technical Services
Cognos8 Deployment Best Practices for Performance/Scalability Barnaby Cole Practice Lead, Technical Services Agenda > Cognos 8 Architecture Overview > Cognos 8 Components > Load Balancing > Deployment
Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()
CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic
Garbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
Can You Trust Your JVM Diagnostic Tools?
Can You Trust Your JVM Diagnostic Tools? Isaac Sjoblom, Tim S. Snyder, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 [email protected], [email protected],
Effective Java Programming. measurement as the basis
Effective Java Programming measurement as the basis Structure measurement as the basis benchmarking micro macro profiling why you should do this? profiling tools Motto "We should forget about small efficiencies,
AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS
TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF
The Java Virtual Machine (JVM) Pat Morin COMP 3002
The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive
Binary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks [email protected] 2005 2009 Glenn G. Chappell
Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2
Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22
InvGen: An Efficient Invariant Generator
InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic
Stacks. Stacks (and Queues) Stacks. q Stack: what is it? q ADT. q Applications. q Implementation(s) CSCU9A3 1
Stacks (and Queues) 1 Stacks Stack: what is it? ADT Applications Implementation(s) 2 CSCU9A3 1 Stacks and ueues A stack is a very important data structure in computing science. A stack is a seuence of
Practical Performance Understanding the Performance of Your Application
Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance
NetBeans Profiler is an
NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that
CARAMEL: Detecting and Fixing Performance Problems That Have Non-Intrusive Fixes
CARAMEL: Detecting and Fixing Performance Problems That Have Non-Intrusive Fixes Adrian Nistor 1, Po-Chun Chang 2, Cosmin Radoi 3, Shan Lu 4 1 Chapman University, 2 University of Wisconsin Madison, 3 University
Google File System. Web and scalability
Google File System Web and scalability The web: - How big is the Web right now? No one knows. - Number of pages that are crawled: o 100,000 pages in 1994 o 8 million pages in 2005 - Crawlable pages might
Variable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
Iterators. Provides a way to access elements of an aggregate object sequentially without exposing its underlying representation.
Iterators Provides a way to access elements of an aggregate object sequentially without exposing its underlying representation when to use it - to access an aggregate object's contents without exposing
Lecture 32: The Java Virtual Machine. The Java Virtual Machine
The University of North Carolina at Chapel Hill Spring 2002 Lecture 32: The Java Virtual Machine April 12 1 The Java Virtual Machine Java Architecture Java Programming Language Java Virtual Machine (JVM)
Monitoring Java enviroment / applications
Monitoring Java enviroment / applications Uroš Majcen [email protected] Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),
Monitoring and Managing a JVM
Monitoring and Managing a JVM Erik Brakkee & Peter van den Berkmortel Overview About Axxerion Challenges and example Troubleshooting Memory management Tooling Best practices Conclusion About Axxerion Axxerion
Satisfiability Checking
Satisfiability Checking SAT-Solving Prof. Dr. Erika Ábrahám Theory of Hybrid Systems Informatik 2 WS 10/11 Prof. Dr. Erika Ábrahám - Satisfiability Checking 1 / 40 A basic SAT algorithm Assume the CNF
Development Environment and Tools for Java. Brian Hughes IBM
Development Environment and Tools for Java Brian Hughes IBM 1 Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services do not imply that they
Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem
International Journal of Applied Science and Technology Vol. 3 No. 8; December 2013 Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem D. R. Aremu O. A. Gbadamosi
Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems
Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems A. Carbon, Y. Lhuillier, H.-P. Charles CEA LIST DACLE division Embedded Computing Embedded Software Laboratories France
J-Sim: An Integrated Environment for Simulation and Model Checking of Network Protocols
J-Sim: An Integrated Environment for Simulation and Model Checking of Network Protocols Ahmed Sobeih, Mahesh Viswanathan, Darko Marinov and Jennifer C. Hou Department of Computer Science University of
Tomcat Tuning. Mark Thomas April 2009
Tomcat Tuning Mark Thomas April 2009 Who am I? Apache Tomcat committer Resolved 1,500+ Tomcat bugs Apache Tomcat PMC member Member of the Apache Software Foundation Member of the ASF security committee
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Apache Tomcat Tuning for Production
Apache Tomcat Tuning for Production Filip Hanik & Mark Thomas SpringSource September 2008 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
Delivering Quality in Software Performance and Scalability Testing
Delivering Quality in Software Performance and Scalability Testing Abstract Khun Ban, Robert Scott, Kingsum Chow, and Huijun Yan Software and Services Group, Intel Corporation {khun.ban, robert.l.scott,
Trace Server: A Tool for Storing, Querying and Analyzing Execution Traces
Trace Server: A Tool for Storing, Querying and Analyzing Execution Traces Igor Andjelkovic University of Belgrade Belgrade, Serbia [email protected] Cyrille Artho RCIS/AIST, Tsukuba, Japan [email protected]
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
No no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
<Insert Picture Here> Java Application Diagnostic Expert
Java Application Diagnostic Expert Agenda 1. Enterprise Manager 2. Challenges 3. Java Application Diagnostics Expert (JADE) 4. Feature-Benefit Summary 5. Features Overview Diagnostic
Chapter 8: Bags and Sets
Chapter 8: Bags and Sets In the stack and the queue abstractions, the order that elements are placed into the container is important, because the order elements are removed is related to the order in which
CSE 403. Performance Profiling Marty Stepp
CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
Validating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
Testing Software Product Lines Using Incremental Test Generation
Testing Software Product Lines Using Incremental Test Generation Engin Uzuncaova Daniel Garcia Sarfraz Khurshid Don Batory Dept. of Electrical and Computer Engineering Dept. of Computer Sciences The University
Software safety - DEF-STAN 00-55
Software safety - DEF-STAN 00-55 Where safety is dependent on the safety related software (SRS) fully meeting its requirements, demonstrating safety is equivalent to demonstrating correctness with respect
CHAPTER 4 ESSENTIAL DATA STRUCTRURES
CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex
IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS
Volume 2, No. 3, March 2011 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
WebSphere Performance Monitoring & Tuning For Webtop Version 5.3 on WebSphere 5.1.x
Frequently Asked Questions WebSphere Performance Monitoring & Tuning For Webtop Version 5.3 on WebSphere 5.1.x FAQ Version 1.0 External FAQ1. Q. How do I monitor Webtop performance in WebSphere? 1 Enabling
11.1 inspectit. 11.1. inspectit
11.1. inspectit Figure 11.1. Overview on the inspectit components [Siegl and Bouillet 2011] 11.1 inspectit The inspectit monitoring tool (website: http://www.inspectit.eu/) has been developed by NovaTec.
WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE
WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE Contents 1. Pattern Overview... 3 Features 3 Getting started with the Web Application Pattern... 3 Accepting the Web Application Pattern license agreement...
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December
J2EE-JAVA SYSTEM MONITORING (Wily introscope)
J2EE-JAVA SYSTEM MONITORING (Wily introscope) Purpose: To describe a procedure for java system monitoring through SAP certified third party tool Wily introscope. Scope: (Assumption) This procedure is applicable
2 2011 Oracle Corporation Proprietary and Confidential
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
MonitorExplorer: A State Exploration-Based Approach to Testing Java Monitors
Department of Computer Science and Engineering University of Texas at Arlington Arlington, TX 76019 MonitorExplorer: A State Exploration-Based Approach to Testing Java Monitors Y. Lei, R. Carver, D. Kung,
Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)
Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse
Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich
Departamento de Investigación LaST: Language Study Tool Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Noviembre 2005 Para citar este documento: Lindner, Edgard; Enrique Molinari,
Simplifying Storage Operations By David Strom (published 3.15 by VMware) Introduction
Simplifying Storage Operations By David Strom (published 3.15 by VMware) Introduction There are tectonic changes to storage technology that the IT industry hasn t seen for many years. Storage has been
