JVM Tool Interface. Michal Pokorný
|
|
- Peter Jenkins
- 7 years ago
- Views:
Transcription
1 JVM Tool Interface Michal Pokorný
2 JVM TI Inspect & control execution on JVM (profiling, debugging, monitoring, thread analysis, coverage, ) Higher-level interface: Java Platform Debugger Architecture JVM TI clients are called agents Receives events, controls using functions (in event callbacks or otherwise) Run in same process, communicate directly with JVM Often controlled by separate process Dynamic loaded library (.so/.dll) or statically linked within JVM Started on JVM startup (-agentlib/-agentpath/java_tool_options), or attached at runtime
3 Architecture Agents run within JVM process; usually C or C++ Phases: ONLOAD, PRIMORDIAL, START, LIVE, DEAD Agent starts in very early JVM phase, or is attached when JVM is live If started early: Agent_OnLoad/OnUnload (optional), JVM terminated if agent setup fails No bytecodes executed, objects created, classes loaded If attached to live JVM: Agent_OnAttach, JVM continues running if agent setup fails Shared objects (.so/.dll/ ) or statically linked into JVM To avoid name clashes if statically linked: Agent_OnLoad_<agent-library_name>, Data types: jobject, jclass, jmethodid, jfieldid,...
4 Environments and capabilities Each agent has separate environment (jvmtienv*) Obtained/disposed by: jint GetEnv(JavaVM *vm, void **env, jint version);, DisposeEnvironment [similar to JNI] Isolates agents - event callbacks, object tags, etc.; JVM state is shared, through. Environment Local Storage (opaque void* pointer) Environment shared between Java threads Each environment has a set of capabilities Starts with no capabilities, capabilities must be explicitly added/relinquished Adding capabilities may incur costs Using capabilities may incur further costs Depending on JVM, the set of potential capabilities may change over time Examples: capabilities limited to 1 agent at any time, to certain phases of execution, Imagine a JVM implementation that: normally compiles into native code, but can switch to bytecode interpretation, but not at runtime. Single-stepping capability may only be
5 Events Callback table, installed in Agent_OnLoad / Agent_OnAttach Events are not queued => need careful writing of event handlers Events may trigger other events Exceptions -- when calling JNI methods that may throw, we must preserve any current pending exception Event callbacks must be reentrant (or protected by monitors) Extra rules for ordering co-located events VM Initialization, Start, Death VMInit callback called => VM initialized, agent can complete initialization
6 Bytecode instrumentation Object allocated, method enter/exit, would be costly to signal by events Preferred method: bytecode instrumentation (e.g. wrap every allocation) Benefits: it s JITed and optimized for speed, can be conditional Static instrumentation: change.class s on disk before loading into JVM; extremely awkward [sic] Load-time: raw.class transformed by agent in ClassFileLoadHook event Dynamic instrumentation: agent can request resending ClassFileLoadHook events (RetransformClasses) Fix and continue debugging (RedefineClasses) Exception: some allocations are not detectable by instrumentation E.g.: reflection, methods without bytecode. Those allocations fire VM Object Allocation events.
7 Observing execution 1/2 Breakpoints: <=1 breakpoint per instruction, generates Breakpoint event Watched fields: <=1 access watch, <=1 modification watch per field Field specified by jclass, jfieldid -- watch applies to all instances Fires FieldAccess, FieldModification event when about to access, modify Notify Frame Pop Ask JVM to tell agent when thread X s frame Y is popped (NotifyFramePop) Generates FramePop event Step Over function Single Step Fire SingleStep event whenever new location reached (except native code). Very expensive. Exception, ExceptionCatch
8 Observing execution 2/2 Monitors Monitor Contended Enter (attempting to enter locked monitor), Entered (when entered) Monitor Wait (about to wait), Waited (finished waiting) GC start, finish Only fired for stop-the-world collections Some GC is online, and some JVMs might not even have stop-the-world GC Thread Start, End
9 Heap Get/Set Tag (jlong tag of object, local to env), Get Objects With Tags Object Free event -- only sent for tagged objects Iterating through heap stalls all heap operations Filters: only (un)tagged objects/classes; only a particular jclass; callback that returns visit / don t-visit flag Follow References Reports every reference exactly once; BFS Starts: A) from all heap roots, B) from initial_object Iterate Through Heap Both reachable and unreachable objects Early abort Force Garbage Collection
10 Adding instrumentation bytecode Java is easier than C. Let s write instrumentation in Java. Add To Bootstrap Class Loader Search Add To System Class Loader Search In the live phase the system class loader supports adding a JAR file to be searched if the system class loader implements a method name appendtoclasspathforinstrumentation which takes a single parameter of type java.lang.string. The method is not required to have public access.
11 Instrumenting native methods Need to instrument: native boolean foo(int x); Rewrite: boolean foo(int x) { /* instrument */ return wrapped_foo(x); } native boolean wrapped_foo(x); Native method lookup for foo : 1) Look for native method foo 2) If it fails and foo starts with $NativeMethodPrefix, try stripping it off and looking again. lookup(wrapped_foo) -> fail -> lookup(foo) -> OK SetNativeMethodPrefix( wrapped_ )
12 Manipulating execution Get/set local variables, fields Threads, thread groups (hierarchy) Stack frames Force Early Return Location in code identified by jmethodid and jlocation Translation between jlocation and Java line number Local variables get/set; identified by frame depth and slot number Get Local Instance (get this object, also works for native frames)
13 More tricks Estimate size of object (platform-specific) Get signatures, modifiers of methods, classes, fields Methods: Local variable table, line number table Redefine Classes For fix-and-continue debugging Method has same bytecode, equal referenced constants in constant pool => equal Not equal => old methods, possibly running on some thread, is obsolete JNI method interception (table) Extension mechanism: JVM may provide additional JVMTI methods, events
14 The end
15
16 BACKUP SLIDES
17 Objs identified as JNI refs (jobject, jclass), derivatives (jthread, jthreadgroup, ) References passed are global/local, but always strong All returned references are local; need to manage this resource; guaranteed to be able to create 16 local refs; automatically deallocated before returning from native code Need to return to global reference before returning JNI: PushLocalFrame, PopLocalFrame Not on jmethodid, jfieldid (they aren t jobjects)
18 More events Method Entry, Exit (expensive, instrumentation recommended instead) Native Method Bind Class Load, Prepare Compiled Method Load, Unload (single method may have multiple forms) Data Dump Request (user-requested by keyboard shortcut) Dynamic Code Generated (compiled native code - e.g. interpreter depending on command-line) Resource Exhausted (e.g. threads, heap, OOM)
19 Method Line number table, local variable table Get Method Name (and Signature) - get method name, signature, generic signature Get Declaring Class, Modifiers Get Max Locals (includes locals for parameters) Get Arguments Size (# of local variable slots -- two-word args use 2) Get Line Number Table (if included in class file) Get Method Location (in bytecode) Get Local Variable Table (valid bytecode section, name+sgt+gensgt, slot) Get Bytecodes Is Method Native; Synthetic; Obsolete Set Native Method Prefix(es) -- works for entire environment This function modifies the failure handling of native method resolution by allowing retry with a prefix applied to the name. When used with the ClassFileLoadHook event, it enables native methods to be instrumented.
20 Class Get Loaded Classes, Get Classloader Classes (loaded by) Get Signature ( Ljava/util/List, int[] => [I, java.lang.integer.type => I ) Get Status, Get Source File Name, Modifiers (public/prot./priv.), Methods (both constr./stat.init. & true methods; not inherited methods), Fields, Implemented Interfaces, Class Version Numbers Get Constant Pool, Get Class Loader Is Interface, Is Array Class, Is Modifiable Class Get Source Debug Extension (TODO:???) Retransform Classes -- bytecode instr. of already loaded classes Redefine Classes
21 Raw Monitor Create, Destroy Enter, Exit, Wait, Notify, Notify All JNI interception (get/set JNI method table) Events Some events enabled/disabled per-thread (impossible: VMInit,Start,Death, ThreadStart, CompiledMethodLoad,Unload, DynamicCodeGenerated, DataDumpRequest) Must explicitly enable all; needs capabilities Generate (missed events, when attaching): CompiledMethodLoad, DynamicCodeGenerated
22 Timers Get Current Thread CPU Timer Information Get Current Thread CPU Time Get Thread CPU Timer Information Get Thread CPU Time Get Timer Information Get Time Get Available Processors (interestingly, this may change at runtime)
23 System Properties Get System Properties, Get/Set System Property Strongly recommended property keys : java.vm.vendor, java.vm.version, java.vm.name, java.vm.info, java.library.path, java.class.path Since this is a VM view of system properties, the set of available properties & their values will usually be different than that in java.lang.system. getproperties.
24 General Get Version Number (of JVM TI / JNI), Get Error Name Set Verbose Flag (-verbose:gc, -verbose:class (loading), -verbose:jni, other) Get JLocation Format jlocation is intentionally unconstrained. JVMBCI => index in GetBytecodes() / MACHINEPC: native machine program counter values / other
25 Pertubing dependencies: public Object() { MyProfiler.allocationTracker(this); } First created object causes load of MyProfiler, which causes new Object(), which causes load of MyProfiler (since it s not finished yet), recursion. if (trackallocations).
26 Stack frames Get Stack Trace, All Stack Traces, Thread List Stack Traces, Frame Count Pop Frame: return to state before calling current function Get Frame Location jvmtiframeinfo - Stack frame information structure: jmethodid + jlocation (instruction index / -1 for native); GetLineNumberTable jvmtistackinfo - Stack information structure, list of jvmtiframeinfo
27 Object Get size (platform-specific approximation), hash code, monitor usage Field Get declaring class, get modifiers, is synthetic? (no source code correspondence)
28 Get all stack traces #include <jvmti.h> jvmtistackinfo *stack_info; jint thread_count; int ti; jvmtierror err; err = (*jvmti)->getallstacktraces(jvmti, MAX_FRAMES, &stack_info, &thread_count); if (err!= JVMTI_ERROR_NONE) {... } for (ti = 0; ti < thread_count; ++ti) { jvmtistackinfo *infop = &stack_info[ti]; jthread thread = infop->thread; jint state = infop->state; jvmtiframeinfo *frames = infop->frame_buffer; int fi; mythreadandstateprinter(thread, state); for (fi = 0; fi < infop->frame_count; fi++) { myframeprinter(frames[fi].method, frames[fi].location); } } /* this one Deallocate call frees all data allocated by GetAllStackTraces */
29 Get stack trace of thread jvmtiframeinfo frames[5]; jint count; jvmtierror err; err = (*jvmti)->getstacktrace(jvmti, athread, 0, 5, frames, &count); if (err == JVMTI_ERROR_NONE && count >= 1) { char *methodname; err = (*jvmti)->getmethodname(jvmti, frames[0].method, &methodname, NULL, NULL); if (err == JVMTI_ERROR_NONE) { printf("executing method: %s", methodname); } }
30 Get loaded classes jvmtienv *jvmti; (*jvm)->getenv(jvm, &jvmti, JVMTI_VERSION_1_0);... jvmtierror err = (*jvmti)->getloadedclasses(jvmti, &class_count, &classes); (in C++: jvmti->getloadedclasses(&class_count, &classes);) // TODO: DisposeEnvironment // TODO: jvmtierror == JVMTI_ERROR_NONE
31 Memory management jvmtierror Allocate(jvmtiEnv* env, jlong size, unsigned char** mem_ptr) (heap iteration, GC events, ObjectFree OK) jvmtierror Deallocate(jvmtiEnv* env, unsigned char* mem)
IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM
IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the
More informationStack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
More informationPerformance Tools for Parallel Java Environments
Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau
More informationJava Interview Questions and Answers
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 and compile the java
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More informationJava 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
More informationJonathan 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.
More informationReplication 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
More informationTHE BUSY DEVELOPER'S GUIDE TO JVM TROUBLESHOOTING
THE BUSY DEVELOPER'S GUIDE TO JVM TROUBLESHOOTING November 5, 2010 Rohit Kelapure HTTP://WWW.LINKEDIN.COM/IN/ROHITKELAPURE HTTP://TWITTER.COM/RKELA Agenda 2 Application Server component overview Support
More informationSystem Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
More informationCloud 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
More informationCSCI 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
More informationCOMP 356 Programming Language Structures Notes for Chapter 10 of Concepts of Programming Languages Implementing Subprograms.
COMP 356 Programming Language Structures Notes for Chapter 10 of Concepts of Programming Languages Implementing Subprograms 1 Activation Records activation declaration location Recall that an activation
More informationInstrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
More informationMonitoring, 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.
More informationDebugging Java performance problems. Ryan Matteson matty91@gmail.com http://prefetch.net
Debugging Java performance problems Ryan Matteson matty91@gmail.com http://prefetch.net Overview Tonight I am going to discuss Java performance, and how opensource tools can be used to debug performance
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationBypassing Browser Memory Protections in Windows Vista
Bypassing Browser Memory Protections in Windows Vista Mark Dowd & Alexander Sotirov markdowd@au1.ibm.com alex@sotirov.net Setting back browser security by 10 years Part I: Introduction Thesis Introduction
More informationChapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
More informationPC Based Escape Analysis in the Java Virtual Machine
PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of
More informationRestraining 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
More informationExample of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
More informationDebugging Java Applications
Debugging Java Applications Table of Contents Starting a Debugging Session...2 Debugger Windows...4 Attaching the Debugger to a Running Application...5 Starting the Debugger Outside of the Project's Main
More informationKeil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
More informationGDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationThe Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
More informationTuning WebSphere Application Server ND 7.0. Royal Cyber Inc.
Tuning WebSphere Application Server ND 7.0 Royal Cyber Inc. JVM related problems Application server stops responding Server crash Hung process Out of memory condition Performance degradation Check if the
More informationMonitoring 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
More informationOperating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
More informationJava Virtual Machine Locks
Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical
More informationObject Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
More informationChapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
More information- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -
More informationUsing 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
More informationJava Memory Model: Content
Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by
More information<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
More information2015 ej-technologies GmbH. All rights reserved. JProfiler Manual
2015 ej-technologies GmbH. All rights reserved. JProfiler Manual Index JProfiler help... 8 How to order... 9 A Help topics... 10 A.1 Profiling... 10 A.1.1 Profiling modes... 10 A.1.2 Remote profiling...
More informationEclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance Monitoring Chris Laffra IBM Ottawa Labs http://eclipsefaq.org/chris Chris Laffra Eclipse Visualization and Performance Monitoring Page 1 Roadmap Introduction Introspection
More informationHeapStats: Your Dependable Helper for Java Applications, from Development to Operation
: Technologies for Promoting Use of Open Source Software that Contribute to Reducing TCO of IT Platform HeapStats: Your Dependable Helper for Java Applications, from Development to Operation Shinji Takao,
More informationlanguage 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
More informationEmbedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
More informationRoos Instruments, Inc.
Roos Instruments, Inc. Building a Dynamic Language on the JVM code link on JVM Summit wiki Smalltalk as an Example Message Based Everything is an Object Byte Coded VM Excellent FFI Existing Architecture
More informationUniversity of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
More informationELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
More informationMonitors and Exceptions : How to Implement Java efficiently. Andreas Krall and Mark Probst Technische Universitaet Wien
Monitors and Exceptions : How to Implement Java efficiently Andreas Krall and Mark Probst Technische Universitaet Wien 1 Outline Exceptions in CACAO Exception implementation techniques CACAO s implementation
More informationJava Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
More informationUse of profilers for studying Java dynamic optimizations
Use of profilers for studying Java dynamic optimizations Kevin Arhelger, Fernando Trinciante, Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris MN, 56267 arhel005@umn.edu,
More informationHabanero 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
More informationC#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
More informationC 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
More informationWhat s Cool in the SAP JVM (CON3243)
What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP
More informationNumerical Algorithms Group
Title: Summary: Calling C Library Routines from Java Using the Java Native Interface This paper presents a technique for calling C library routines directly from Java, saving you the trouble of rewriting
More informationAdvanced 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 Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationTrace-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
More informationOperating Systems and Networks
recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls
More informationFree Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third
More informationRE-TRUST Design Alternatives on JVM
RE-TRUST Design Alternatives on JVM ( - Italy) paolo.falcarin@polito.it http://softeng.polito.it/falcarin Trento, December, 19 th 2006 Tamper-Detection Tamper-detection goals Detect malicious modifications
More informationSources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
More informationLecture 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)
More informationChapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationExtending your Qt Android application using JNI
Extending your Qt Android alication using JNI Dev Days, 2014 Presented by BogDan Vatra Material based on Qt 5.3, created on November 13, 2014 Extending your alication using JNI Extending your alication
More informationFachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationJava and Java Virtual Machine Security
Java and Java Virtual Machine Security Vulnerabilities and their Exploitation Techniques by Last Stage of Delirium Research Group http://lsd-pl.net Version: 1.0.0 Updated: October 2nd, 2002 Copyright c
More informationObjectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
More informationaicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011
aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011 2 aicas Group aicas GmbH founded in 2001 in Karlsruhe Focus: Embedded
More informationJava Virtual Machine, JVM
Java Virtual Machine, JVM a Teodor Rus rus@cs.uiowa.edu The University of Iowa, Department of Computer Science a These slides have been developed by Teodor Rus. They are copyrighted materials and may not
More informationChapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
More informationFree Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman
More informationPort of the Java Virtual Machine Kaffe to DROPS by using L4Env
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher ab764283@os.inf.tu-dresden.de Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationChapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
More informationInterpreters 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.
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationOMPT and OMPD: OpenMP Tools Application Programming Interfaces for Performance Analysis and Debugging
OMPT and OMPD: OpenMP Tools Application Programming Interfaces for Performance Analysis and Debugging Alexandre Eichenberger, John Mellor-Crummey, Martin Schulz, Nawal Copty, John DelSignore, Robert Dietrich,
More informationTool - 1: Health Center
Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About
More informationHow to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com
How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic
More informationJava VM monitoring and the Health Center API. William Smith will.smith@uk.ibm.com
Java VM monitoring and the Health Center API William Smith will.smith@uk.ibm.com Health Center overview What problem am I solving? What is my JVM doing? Is everything OK? Why is my application running
More informationOracle WebLogic Thread Pool Tuning
Oracle WebLogic Thread Pool Tuning AN ACTIVE ENDPOINTS TECHNICAL NOTE 2010 Active Endpoints Inc. ActiveVOS is a trademark of Active Endpoints, Inc. All other company and product names are the property
More informationEmbedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
More informationDeveloping In Eclipse, with ADT
Developing In Eclipse, with ADT Android Developers file://v:\android-sdk-windows\docs\guide\developing\eclipse-adt.html Page 1 of 12 Developing In Eclipse, with ADT The Android Development Tools (ADT)
More informationChapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
More informationJava Performance Tuning
Summer 08 Java Performance Tuning Michael Finocchiaro This white paper presents the basics of Java Performance Tuning for large Application Servers. h t t p : / / m f i n o c c h i a r o. w o r d p r e
More informationOutline of this lecture G52CON: Concepts of Concurrency
Outline of this lecture G52CON: Concepts of Concurrency Lecture 10 Synchronisation in Java Natasha Alechina School of Computer Science nza@cs.nott.ac.uk mutual exclusion in Java condition synchronisation
More informationOracle JRockit Mission Control Overview
Oracle JRockit Mission Control Overview An Oracle White Paper June 2008 JROCKIT Oracle JRockit Mission Control Overview Oracle JRockit Mission Control Overview...3 Introduction...3 Non-intrusive profiling
More informationJorix kernel: real-time scheduling
Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and
More information1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
More informationC++FA 3.1 OPTIMIZING C++
C++FA 3.1 OPTIMIZING C++ Ben Van Vliet Measuring Performance Performance can be measured and judged in different ways execution time, memory usage, error count, ease of use and trade offs usually have
More informationWINDOWS PROCESSES AND SERVICES
OBJECTIVES: Services o task manager o services.msc Process o task manager o process monitor Task Scheduler Event viewer Regedit Services: A Windows service is a computer program that operates in the background.
More informationOperating System Manual. Realtime Communication System for netx. Kernel API Function Reference. www.hilscher.com.
Operating System Manual Realtime Communication System for netx Kernel API Function Reference Language: English www.hilscher.com rcx - Kernel API Function Reference 2 Copyright Information Copyright 2005-2007
More information2 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,
More informationRational Application Developer Performance Tips Introduction
Rational Application Developer Performance Tips Introduction This article contains a series of hints and tips that you can use to improve the performance of the Rational Application Developer. This article
More informationJava 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
More informationJBoss Cookbook: Secret Recipes. David Chia Senior TAM, JBoss May 5 th 2011
JBoss Cookbook: Secret Recipes David Chia Senior TAM, JBoss May 5 th 2011 Secret Recipes Byteman Cluster and Load Balancing Configuration Generator Troubleshooting High CPU Mocking a JBoss Hang State Byte
More informationRTOS Debugger for ecos
RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3
More information11.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.
More informationMobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
More informationHow To Use Java On An Ipa 2.2.2 (Jspa) With A Microsoft Powerbook (Jempa) With An Ipad 2.3.2 And A Microos 2.5 (Microos)
Java Monitoring and Diagnostic Tooling Iris Baron IBM Java JIT on System Z ibaron@ca.ibm.com Session ID: 16182 Insert Custom Session QR if Desired. Java Road Map Java 7.0 Language Updates Java 6.0 SE 5.0
More informationStorage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
More informationWeb Performance, Inc. Testing Services Sample Performance Analysis
Web Performance, Inc. Testing Services Sample Performance Analysis Overview This document contains two performance analysis reports created for actual web testing clients, and are a good example of the
More information