Impact of Java Compressed Heap on Mobile/Wireless Communication

Size: px
Start display at page:

Download "Impact of Java Compressed Heap on Mobile/Wireless Communication"

Transcription

1 Impact of Java Compressed Heap on Mobile/Wireless Communication Mayumi KATO and Chia-Tien Dan Lo Department of Computer Science University of Texas at San Antonio San Antonio, Texas fmayumik, Abstract M-commerce has shown up as e-commerce in mobile and wireless communication, and now deals with on-line banking, stock trading, auctions, transactions, and mobile media. M-commerce applications are implemented with, for example, Java technology that supports a client-and-server model and cross-platform mobile applications. They are attractive, but, need a large heap space, which may slow down the execution, lead to poor interactive response, and sometimes cause out of memory failure. We propose a Java computation mechanism with heap de/compression modules that reduce memory demand and allow client applications and embedded devices to take the advantage of compression techniques. Results show the impact in space and time efficiency of the proposed mechanism. The space efficiency is 1.8 to 2.5 and the speed is competitive with that of original Java technology. We believe that the proposed mechanism provides a good runtime environment for mobile/wireless computing Introduction Attractive wireless services have been launched into a third generation of wireless communication. Java technology is introduced to client and server models on mobile/wireless embedded systems. Clients are implemented using Java 2 Platform Micro Edition (J2ME) with Remote Method Invocation (RMI) package, and servers are made with Java 2 Platform Standard Edition (J2SE) or Java 2 Platform Enterprise Edition (J2EE). The Java technology is integrated into mobile/wireless devices, and is known for its advantage as follows: flexible user interfaces, robust security models, broad range 1 Partial support for this work is provided by the Center for Infrastructure Assurance and Security at UTSA through grants CIAS of built-in network protocols, and support for networked and stand-alone applications. Small handsets are now able to access , web service, mobile commerce, telephony, global position systems, and MP 3 Players, but suffer from their small memory. Current solutions for Java wireless computing are Just-in-Time (JIT), optimized interpreter, co-processor, Java core, and Jazelle technology. The JIT compilation is one of the software solutions and provides good speed. The optimized interpreter is another software solution and has lower memory overhead and simple debug. The co-processor is a hardware solution and offers reasonable speed. The Java core technology is another hardware solution and presents excellent performance. The Jazelle technology is a solution codesigned at hardware and software levels which achieves fast bytecode-execution, low power-consumption, low cost, and fast product integration. These solutions, however, have some shortcomings. The JIT suffers from the large memory overhead and start-up latency (power hungry, complex debug, and it must run in Random Access Memory (RAM)). The optimized interpreter has poor performance compared to C. The co-processor increases chip area, which leads to high power demand and system cost. The Java core technology encounters complex integration and poor performance with native code. The Jazelle technology consumes a large memory footprint. We have seen the problems of Java on mobile and wireless embedded devices and the advantages and disadvantages of the current solutions for Java wireless computing. We discovered a key factor, a small memory footprint for further accelerating the performance of the current and next generations of mobile/wireless computing. A small memory footprint will allow memoryhungry applications to run on a system with current available memory capacity in any of the existing solutions for Java technology. Techniques for a small memory footprint have been

2 studied in several areas: Java classfile compression [1], Java bytecode factorization [2], compact bytecode instructions [3][4], on-the-fly constant pool compaction [5], profile-driven code unloading [6], and Java heap compression [7][1][11]. We introduce a Java compressed heap model that de/compresses a group of objects, and show its impact on space, time and power efficiency. In the remaining paper, section 2 describes the related works, section 3 presents an overview of our proposed architecture, section 4 shows experiments and results, and section 5 presents our conclusion and future work. 2. Related work Pugh [1] addresses Java classfile compression that uses a wire-code format for collections of Java class files and a redesigned basic structure of information in a Java class file. Our proposed technique is different from Pugh s in that it is applied to the Java heap, and addresses Java objects. Clausen et al :[2], and Evans and Fraser [3][4] have studied Java bytecode compressions. Clausen et al : introduce factorization to reduce memory footprints. The factorization factorizes recurring instruction sequences into new instructions. This works as a compression unit that is roughly comparable to gzip. Evans and Fraser propose grammar-based compression for producing compact bytecode instructions, and interpreters for them. Our Java heap compression technique is different from Clausen et al : and Evans and Fraser in that our proposed architecture uses original bytecode formats and has de/compression modules that de/compress a page of objects and reduce runtime heap memory demand of each Java application. Ripper et al : [5] found that lots of constants in the constant pool are not accessed during execution and can be eliminated on the fly. On-the-fly constant pool compaction on Java In The Small (JITS) is proposed. Experiment results show that the constant pool could be reduced up to 7.78% which makes a method calling process fast. Our proposed technique for small memory footprints is different from Ripper et al : in that their studies used constant pool compaction; our studies use Java compressed heap. Zhang and Krintz [6] propose profile-driven code unloading for resource constrained Java Virtual Machines (VMs) to reduce memory footprints, and presents four strategies: online exhaustive profiling (OnX), online sample-based profiling (OnS), offline profiling (Off), and no profiling (NP). Results show around 5% reduction in code size with less than 1% of overhead. Our technique for small memory footprints is different from Zhang and Krintz in that they address Just-in-Time (JIT) and control native code loading, while we reduce memory footprints by in-heap compression techniques. Chen et al : [7] propose a set of memory management strategies for reducing memory footprints: markcompact-compress (MCC) collector, mark-compactlazy allocate (MCL), and mark-compact-compress-lazy allocate (MCCL). The memory management strategies use a zero removal compression scheme that compresses and decompresses a single object instance and array created by Java application. Memory could be saved 21% on average. Chen et al : show a feasibility of a runtime Java heap compression. Our Java heap de/compression technique is different from Chen et al : in that our computation mechanism has a virtual cache, and our de/compression is a page-based technique that de/compresses a page of local and remote objects and is invoked when a virtual cache miss occurs. 3. The proposed architecture We introduce a compression technique and propose a Java Virtual Machine (VM) with a compressed heap. The proposed architecture has two goals: one is to reduce on-the-fly heap memory demands for Java application programs if they are big, and tune them to run on mobile/wireless devices with small memory capacity; another goal is to minimize the number of active memory banks, and power off unused banks to eliminate leakage currents in memory systems. The proposed architecture is a client-and-server model, and has base architectures for both clients and servers. Client architectures use Java 2 Platform Micro Edition (J2ME) and its Remote Method Invocation (RMI) optional package. Server architectures are designed on Java 2 Platform Enterprise Edition (J2EE) or Java 2 Platform Standard Edition (J2SE). De/compression techniques are integrated into the Java Virtual Machines (VMs). The proposed architecture is designed to ensure minimum memory space and optimize power consumption. The proposed architecture consists of the Java Virtual Machines (VMs), a memory management module, a compressing unit, a decompressing unit, a caching unit, an Address Lookaside Buffer (ALB) table, and a compressed heap. The memory management module has a garbage collection mechanism and interfaces to the Java VM, the compressing unit, the caching unit, and the ALB table. The compressing unit includes a compressing buffer with interfaces to the compressed heap, the caching unit, and the ALB table. The decompressing unit consists of a decompressing buffer and in-

3 terfaces to the compressed heap, the caching unit, and the ALB table. The caching unit is composed of caching buffers (one works as a caching delayed buffer to accumulate objects (a page size)), and has interfaces to the memory management module, the compressing unit, and the decompressing unit. The ALB table holds page and mark bit information Operation examples of de/compression techniques De/compression techniques are used in combination with Java memory management systems. The memory management module calls de/compressing units upon object creation and object accesses as required. We will discuss how the compression technique is applied to Java computation mechanism. An object is created either locally or remotely. We assume that objects that come over the Internet have been compressed at a sending side and that objects newly created inside a Java Virtual Machine (VM) are not compressed. Figure 1 shows the proposed compression mechanism. The compression mechanism works in three ways: New local object created (uncompressed form) Caching unit Compressing unit Delayed buffer Delayed buffer is full? ALB Table Remote object created and accessed (compressed form) Decompressing unit Local object accessed ( compressed form ) Compressed heap Accessed Stored In the second cycle, the memory management module sends the object directly to the delayed buffer and updates the ALB table. In the same cycle, the compressing unit compresses the victim page. In the third cycle, the compressing unit stores the compressed page in the compressed heap and updates the ALB table. In all cases, the caching unit forwards the object to Java VM core when it is requested. Operations for remote objects are similar to the operations described above, except that a remote object is decompressed on the fly at the local decompressing unit and sent to the delayed buffer in the caching unit. The compression mechanism processes accessed objects in two ways. If an object requested is in the caching buffers, it is a cache hit and no compression is invoked. The object is simply forwarded to the Java VM core. If an object requested is not in any caching buffer, it is a cache miss and the memory management module reads the object over the Internet or from the local compressed heap. The remote object is read per object, while the local object is read per page. Operations for accessing the remote object are similar to operations for handling the remote object created. The local objects are accessed in the following manner. A page including a requested object is read from the compressed heap using the information in the ALB table and sent to the decompressing unit that decompresses the page. When the caching buffers are not full, the decompressing unit sends a decompressed page to the caching unit. When all the caching buffers are full, the caching unit selects one page as a victim and sends it to the compressing unit. In the second cycle, the decompressing unit sends the page to the caching unit. In the same cycle, the compressing unit compresses the victim page and stores it in the compressed heap. It also updates the ALB table. 1 Ox1 1 Ox1 1 Ox1 R Store compressed block 2 3 Ox122 Ox Ox Ox1726 R 4 Ox1726 Decompressing unit Page From delayed buffer in the caching unit Figure 1. Compression mechanism Case 1: when the delayed buffer is not full, the memory management module sends the object directly to it, while updating the Address Lookaside Buffer (ALB) table based on the move-to-front strategy. Case 2: when the delayed buffer is full and some of the caching buffers are not used yet, it is used as the delayed buffer. The memory management module sends the object to the delayed buffer and updates the ALB table. Case 3: when the delayed buffer and all the caching buffers are full, the caching unit sends the page in the delayed buffer as a victim to the compressing unit. GC buffer Compaction buffer P = {P } GC buffer Compaction buffer Compressing unit To delayed buffer in the caching unit P = {P } Page P Figure 2. Garbage collection mechanism 3.2. Garbage collection The Java memory management system has a Garbage Collection (GC) mechanism that consists of mark, sweep, and compaction phases. We redesigned

4 it to handle compressed objects. Our Garbage Collection (GC) mechanism includes de/compression modules and has a GC buffer and a compaction buffer. The mark phase is similar to the original GC mechanism except that mark bits are stored in an Address Lookaside Buffer (ALB) table. The sweep and compaction phases are migrated into de/compression modules and delayed until an object is accessed and/or a cache miss occurs. Figure 2 shows how the proposed garbage collector works. Given objects 1, 2, 3, and 4 that are stored in page, page is checked if it contains garbage objects by traversing trees. Objects 1 and 4 are marked as live objects and objects 2 and 3 are determined as garbage objects. For example, when object 4 is accessed and a cache miss occurs, the sweep and compaction phases are called twice: one for page ; and another for a victim page. Page : compressed page is loaded to the decompressing unit. The decompressing unit decompresses page and sends it to the GC buffer. The sweep phase of the garbage collector is invoked to the GC buffer and collects garbage objects using mark information in the ALB table. The live objects are sent to the compaction buffer, and forwarded to the delayed buffer after relocation and compaction. Victim page : the caching unit selects a victim page, and forwards it to the GC buffer. The sweep phase is invoked to the victim page. The live objects are sent to the compaction buffer and forwarded to the compressing unit. The compressing unit compresses the live objects and stores them in the compressed heap In-memory compression algorithms Popular compression algorithm Lempel-Ziv (LZ) family is designed for human text and is not suitable for data in memory/cache because of its regularity modeling. Most in-memory/cache data is word-aligned integers and pointers and contains many repeating zero values. The majority of its information is found in its low bits. The Wilson-Kaplan (WK) compression family [8][9] was designed to capture these characteristics, and we use it in the proposed architecture. In the remaining section, we briefly discuss the WK family. The WK algorithms are a dictionary-based approach that compares input symbols to recently seen symbols in a dictionary and models the similarity of values that are spatially local. A coding format is illustrated below. <tag>[4 bits dictionary index][1 low bits][22 upper bits] The compressing operation has two phases: 1. packing phase : the majority of information is contained in low bits of input words, which are compacted as short as possible by extracting and combining only their information parts. For example, if information is stored in the lower eight bits, each lower eight bits of four words can be combined into a new single word by a set of shift and bitwise XOR operation. 2. compression phase : each packed word is compared to some expected values (Figure 3), and all information (tag and other bits) are assembled into a compressed form. Coding varies on match types (Table 1). Input word If an input word is zero, encode it as ZERO, Otherwise, compare the upper 22 bits of the input word to the upper 22 bits of the zeroth element in the dictionary. Zeroth Element in Dictionary If they have the same pattern, compare their full bits (case 1), Otherwise, compare the upper 22 bits of the input word to the first element in the dictionary (case 2). Case 1: Case 2: If they have the same pattern, encode it as EXACT match. Otherwise, mark it as PARTIAL match and further compare it to the first element in the dictionary (case 2). First Element in Dictionary Repeat the above operation with the remaining elements in the dictionary. 4 way set Associative Dictionary 4 way set Associative Dictionary If the upper 22 bits of the input word did not match any of the upper 22 bits of the four elements in the dictionary, encode the input word as NO match. Otherwise, encode the input word as PARTIAL match. Figure 3. Compression example Match type ZERO Table 1. Coding Coding specification <x> EXACT <x1><4bitsdictionary index > PARTIAL <x2><4 bits dictionary index ><1low bits > MISS <x3>< 32 bits literal pattern > The basic decompressing operation is to extract a tag from the compressed input and decompress the data using the tag information and the coding specification (Table 1) Page replacement policy Least-recently-used (LRU) page replacement policy is used in the proposed architecture. Any of existing page replacement policies could be integrated.

5 3.5. Key features Key features of the proposed architecture are integration of compression techniques to Java Virtual Machines (VMs), Java compressed heap mechanisms, Java remote object compression mechanisms, garbage collection mechanisms for the compressed Java heap, small memory demand, low power consumptions, and small network bandwidths. 4. Experiment and results We will examine compression techniques on wireless devices and show their impact in space and time efficiency. The space efficiency is defined as spaceefficiency = Wgc Wcomp+gc where Wgc is the watermark on the original architecture with gc and Wcomp+gc is the watermark on the proposed architecture with compression + gc. The time efficiency is defined as timeefficiency = Tgc Tcomp+gc where Tgc is the execution time on the original architecture with gc, and Tcomp+gc is the execution time on the proposed architecture with compression + gc. Tcomp+gc is calculated by (1) (2) Tcomp+gc = Costgc + Costde=comp (3) The cost of garbage collection (Costgc) isdefined as the total execution time for mark phases. The cost of sweep and compact phases are migrated into de/compression costs. The cost of garbage collection is accumulated during the program execution. The cost of de/compression (Cost de=comp )isproportional to the number of cache misses and classified into two cases: when the cache is full, one compression and one decompression are invoked (case 1); when the cache is not full, one decompression is invoked (case 2). The de/compression time is accumulated during the execution, and its total cost is calculated by Costde=comp = X Costcase1 + X Costcase2 (4) The compressed heap is simulated on Solaris 9 with SunOS 5.9: Each object is traced when it is created and accessed. The simulation measures the number of Garbage Collection (GC), the execution time of GC, the number of cache misses (that are related to the number of compressions and decompressions), and the execution time of In-heap de/compression. The space and Table 2. Benchmarks MIDlet Suite Viewer Description wireless service program for Java-enabled 256KB heap (J2ME) mobile devices ( ). demos(http) technical demonstration program of h ttp 64KB heap for MIDP ( comes with Sun Java KVM 2 ). Stock Get stock quotes from a publicly a vailable website, 64KB heap and set alerts ( comes with Sun Ja va KVM). Audiodemo Listen to sounds using Mobile Media APIs audio 64KB heap building block ( comes with Sun Ja va KVM ). manyballs game program (comes with Sun Java KVM). 32KB heap Configuration Base architecture Heap size Page size Cache size Compression algorithm Options Table 3. Base configuration Description Clien t: Java 2 Platform, Micro Edition (J2ME) Remote Method Invocation (RMI) optional pac kage Server : Java 2 Platform, En terprise Edition (J2EE) Java 2 Platform, Standard Edition (J2SE) 32KB, 64KB, 128KB, or 5,, bytes (maximum) 4KB as default (-4KB) 64KB as default (-64KB) Wilson-Kaplan (WK) family : WK 4 4 Any of existing compression algorithms, ho wever, works in the proposed architecture, for example, jar, par, gzip, zip, x-match, zero-removal, and compress. GC mode on, compaction mode on, fastbytecode mode off time efficiencies are calculated using formulas (1) to (4). We use wireless Java applications as benchmarks. Table 2 shows a list of benchmarks and brief descriptions. We design experiments to evaluate the proposed architecture. Table 3 shows a base configuration of the proposed architecture. We use Java 2 platform, Micro Edition (J2ME) and its RMI optional package for clients, and Java 2 platform, Enterprise Edition (J2EE) and/or Java 2 platform, Standard Edition (J2SE) for servers. The maximum heap size is 5,, bytes, but is tuned for each application program. For example, Viewer uses 256KB as a heap size. The default page size is 4KB, and the default cache size is 64KB. The number of the cache entry is 16. We use the Wilson- Kaplan WK 4 4 algorithm for In-heap compression. The options of J2ME are garbage collection and compaction modes. Table 4 shows the summaries of experiment results. Table 4. Space and time efficiency Application Space Time efficiency efficiency Viewer HTTP demo Stock Audiodemo manyballs [Space efficiency] Four out of five benchmark applications exceed space efficiency of 2., which indicates In-heap compression technique can reduce the heap memory demand to 5 % or more on average. Experiment results show that the space efficiency is independent of the size of the Java dynamic heap (256KB in Viewer, 64KB in HTTP Demo, Stock and Au-

6 diodemo, and 32KB in manyballs). The space efficiency of 2. also indicates half of the memory banks for the Java heap may never be turned on in the memory bank system. More than 5 % of the memory leakage can be saved. [Time efficiency] HTTPdemo, Audiodemo, and manyballs reach time efficiency of 1., which means the sum of the modified garbage collection time and the total de/compression time is almost equal to the original garbage collection time and occupied a small part of the total execution time. HTTPdemo and audiodemo are client programs that download http text and audio files, and manyballs is a stand-alone game program. Their program characteristics are different from each other, but there was no difference in time efficiency between them. Good data and code locality and less invocation of garbage collector (including de/compression) contribute to the time efficiency of 1.. Stock and - Viewer have the time efficiency of.99. They performed worst in speed, but time overhead is within 1 %. Stock and Viewer are client programs but have richer functionality than HTTPdemo and Audiodemo: Stock and Viewer use local databases, and have disk accesses. The use of local databases may affect the performance of the compressed heap proposed. We are further examining key factors for poor performance. 5. Conclusion and future work We have seen the impact of Java compressed heap on wireless communication. Results show that the compressed heap is effective to ensure small memory footprints for wireless applications with any memory demand. Tuning speed is a critical issue in our on-going research, and the impact of the compressed heap on remote objects is one of our future works. Acknowledgment The authors would like to thank anonymous reviewers for their comments and suggestions and Ms. Ball for her proof-reading. This researc h is supported by the Center for Infrastructure Assurance and Security and doctoral fellowships under the department of computer science, the university of Texas at San Antonio. References [1] W. Pugh, Compressing Java class files, In Proc.of the ACM SIGPLAN 1999 Conferenc e on Programming language design and implementation PLDI'99, A CMPress, NY, USA, May 1999, pp [2] L. Clausen, U. Schultz, C. Consel, and G. Muller, Java bytecodes compression for low-end embedded systems, ACM transactions on programming languages and systems, 22:3, A CM Press, NY, USA, May 2, pp [3] W. Ev ans and C. Fraser, Bytecode compression via profiled grammar rewriting, In Pr oc. of the ACM SIGPLAN 21 conference on Pr o- gramming language design and implementation PLDI'1, A CMPress, NY, USA, May 21, pp [4] W. Evans and C. F raser, Grammar-based compression of interpreted code, Communications of the ACM, 46:8, A CM Press, NY, USA, August 23, pp [5] C. Rippert, A. Courbot, and G. Grimaud, A lowfootprin tclass loading mechanism for embedded Java virtual machine, In Proc. of the 3rd Int'l Conference on Principles and Practice ofprogramming in Java PPPJ'4, the ACM Int'l Conference Proc. series, Computer Science Press, Trinity College Dublin, Ireland, June 24, pp [6] L. Zhang and C. Krintz, Profile-driven Code Unloading for Resource Constrained JVMs, In Pr oc. of the 3rd Int'l Conference on Principles and Practice ofprogramming in Java PPPJ'4, theacm Int'l Conference Proc. series, Computer Science Press, Trinity College Dublin, Ireland, June 24, pp [7] G. Chen, M. Kandemir, N. Vijaykrishnan, M. Irwin, and B. Mathiske, Heap Compression for Memory-Constrained Java Environments, In Proc. of the 18th annual ACM SIGPLAN conference onobject-oriented programming, systems, languages, and applications OOPSLA'3, ACM Press, NY, USA, October 23, pp [8] P. Wilson, S. Kaplan, and Y. Smaragdakis, The case for compressed caching invirtual memorysystems, In Proc. of the USENIX Annual Technical Conference, USENIX Association, Berkeley, CA, June 1999, pp [9] S. Kaplan, Compressed caching and modern virtual memory systems, PhD. Thesis, The University oftexas at Austin, TX, USA, December [1] M. Kato and C. Lo, A heap de/compression module for wireless Java, In Proc. of the 3rd Int'l Conference on Principles and Practice ofprogramming in Java PPPJ'4, the ACM Int'l Conference Proc. series, Computer Science Press, Trinity College Dublin, Ireland, June 24, pp [11] C. Lo and M. Kato, Pow er Consumption Reduction in Java Embedded Systems, In Pr oc. of Int'l Conference on Computer, Communication and Control Technologies CCCT'3 and the 9th Int'l Conference on Information Systems Analysis and Synthesis ISAS'3, volume 1, IIIS, Orlando, Florida, USA, July-August 23, pp

Heap Compression for Memory-Constrained Java

Heap Compression for Memory-Constrained Java Heap Compression for Memory-Constrained Java CSE Department, PSU G. Chen M. Kandemir N. Vijaykrishnan M. J. Irwin Sun Microsystems B. Mathiske M. Wolczko OOPSLA 03 October 26-30 2003 Overview PROBLEM:

More information

PennBench: A Benchmark Suite for Embedded Java

PennBench: A Benchmark Suite for Embedded Java WWC5 Austin, TX. Nov. 2002 PennBench: A Benchmark Suite for Embedded Java G. Chen, M. Kandemir, N. Vijaykrishnan, And M. J. Irwin Penn State University http://www.cse.psu.edu/~mdl Outline Introduction

More information

Heap Compression for Memory-Constrained Java Environments Λ

Heap Compression for Memory-Constrained Java Environments Λ Heap Compression for Memory-Constrained Java Environments Λ G. Chen, M. Kandemir, N. Vijaykrishnan, M. J. Irwin CSE Department The Pennsylvania State University University Park, PA 1682 fgchen,kandemir,vijay,mjigcse.psu.edu

More information

Practical Java Card bytecode compression 1

Practical Java Card bytecode compression 1 RENPAR 14 / ASF / SYMPA Practical Java Card bytecode compression 1 Gabriel Bizzotto Gilles Grimaud LIFL, Universite de Lille 1 Gemplus Research Lab bizzotto@dea.lifl.fr grimaud@lifl.fr Abstract Our work

More information

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming DAY 3 J2ME Mobile Phone Programming Java 2 Micro Edition (J2ME) Overview Introduction J2ME architecture MIDlets Application development Introduction J2ME Key Factors Portability: Write once run anywhere

More information

Energy vs. Memory Trade-Offs on Energy-and- Memory Constraint Embedded JVM

Energy vs. Memory Trade-Offs on Energy-and- Memory Constraint Embedded JVM Energy vs. Memory Trade-Offs on Energy-and- Memory Constraint Embedded JVM Jie Tang Runtime Technology Lab Intel Beijing, China tangjie.bit@gmail.com Chen Liu Department of Electrical and Computer Engineering

More information

Object Duplication for Improving Reliability

Object Duplication for Improving Reliability Object Duplication for Improving Reliability G. Chen, G. Chen, M. Kandemir, N. Vijaykrishnan, M. J. Irwin Department of Computer Science and Engineering The Pennsylvania State University Soft Errors S

More information

JamaicaVM Java for Embedded Realtime Systems

JamaicaVM Java for Embedded Realtime Systems JamaicaVM Java for Embedded Realtime Systems... bringing modern software development methods to safety critical applications Fridtjof Siebert, 25. Oktober 2001 1 Deeply embedded applications Examples:

More information

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course? Who am I? Wireless Online Game Development for Mobile Device Lo Chi Wing, Peter Lesson 1 Email: Peter@Peter-Lo.com I123-1-A@Peter Lo 2007 1 I123-1-A@Peter Lo 2007 2 Are you take the right course? This

More information

Full file at

Full file at Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 2 Multiple Choice 1. A is an example of a systems program. A) command

More information

Hardware-Supported Pointer Detection for common Garbage Collections

Hardware-Supported Pointer Detection for common Garbage Collections 2013 First International Symposium on Computing and Networking Hardware-Supported Pointer Detection for common Garbage Collections Kei IDEUE, Yuki SATOMI, Tomoaki TSUMURA and Hiroshi MATSUO Nagoya Institute

More information

DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming

DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming DAY 3 J2ME Mobile Phone Programming Module 2 Micro (J2ME) Overview Introduction J2ME architecture Introduction 1 J2ME Key Factors Portability: Write once run anywhere Security: Code runs within the confines

More information

History Introduction to Java Characteristics of Java Data types

History Introduction to Java Characteristics of Java Data types Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems

More information

Compressing Java Class files

Compressing Java Class files Compressing Java Class files 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation William Pugh Dept. of Computer Science Univ. of Maryland Java Class files Compiled Java source

More information

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

Requirements and Issues of V**s for Mobile Terminals

Requirements and Issues of V**s for Mobile Terminals Requirements and Issues of V**s for Mobile Terminals Workshop on the Future of Virtual Execution Environments Armonk, NY, USA 15-17.09.2004 Kari Systä Nokia Research Center 1 NOKIA Presentation_Name.PPT

More information

J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES

J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES Pradip Lamsal Abstract: Java 2 Platform Micro Edition (J2ME ), a flavour of Java architecture, is aimed at low memory consumer devices, typically less

More information

Building Robust Embedded Software

Building Robust Embedded Software Building Robust Embedded Software by Lars Bak, OOVM A/S Demands of the Embedded Industy Increased reliability Low cost -> resource constraints Dynamic software updates in the field Real-time capabilities

More information

Heap Management. Heap Allocation

Heap Management. Heap Allocation Heap Management Heap Allocation A very flexible storage allocation mechanism is heap allocation. Any number of data objects can be allocated and freed in a memory pool, called a heap. Heap allocation is

More information

Interaction of JVM with x86, Sparc and MIPS

Interaction of JVM with x86, Sparc and MIPS Interaction of JVM with x86, Sparc and MIPS Sasikanth Avancha, Dipanjan Chakraborty, Dhiral Gada, Tapan Kamdar {savanc1, dchakr1, dgada1, kamdar}@cs.umbc.edu Department of Computer Science and Electrical

More information

I J C S I E International Science Press

I J C S I E International Science Press Vol. 5, No. 2, December 2014, pp. 53-56 I J C S I E International Science Press Tolerating Memory Leaks at Runtime JITENDER SINGH YADAV, MOHIT YADAV, KIRTI AZAD AND JANPREET SINGH JOLLY CSE B-tech 4th

More information

Cross-Layer Memory Management to Reduce DRAM Power Consumption

Cross-Layer Memory Management to Reduce DRAM Power Consumption Cross-Layer Memory Management to Reduce DRAM Power Consumption Michael Jantz Assistant Professor University of Tennessee, Knoxville 1 Introduction Assistant Professor at UT since August 2014 Before UT

More information

GrinderBench for the Java Platform Micro Edition Java ME

GrinderBench for the Java Platform Micro Edition Java ME GrinderBench for the Java Platform Micro Edition Java ME WHITE PAPER May 2003 Updated April 2006 Protagoras, the leading Greek Sophist, was quoted as saying, "Man is the measure of all things," by which

More information

Code Compression for RISC Processors with Variable Length Instruction Encoding

Code Compression for RISC Processors with Variable Length Instruction Encoding Code Compression for RISC Processors with Variable Length Instruction Encoding S. S. Gupta, D. Das, S.K. Panda, R. Kumar and P. P. Chakrabarty Department of Computer Science & Engineering Indian Institute

More information

CPE300: Digital System Architecture and Design

CPE300: Digital System Architecture and Design CPE300: Digital System Architecture and Design Fall 2011 MW 17:30-18:45 CBC C316 Virtual Memory 11282011 http://www.egr.unlv.edu/~b1morris/cpe300/ 2 Outline Review Cache Virtual Memory Projects 3 Memory

More information

Live Virtual Machine Migration with Efficient Working Set Prediction

Live Virtual Machine Migration with Efficient Working Set Prediction 2011 International Conference on Network and Electronics Engineering IPCSIT vol.11 (2011) (2011) IACSIT Press, Singapore Live Virtual Machine Migration with Efficient Working Set Prediction Ei Phyu Zaw

More information

Survey of Dynamic Instrumentation of Operating Systems

Survey of Dynamic Instrumentation of Operating Systems Survey of Dynamic Instrumentation of Operating Systems Harald Röck Department of Computer Sciences University of Salzburg, Austria hroeck@cs.uni-salzburg.at July 13, 2007 1 Introduction Operating systems

More information

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform Outline Introduction to Java Introduction Java 2 Platform CS 3300 Object-Oriented Concepts Introduction to Java 2 What Is Java? History Characteristics of Java History James Gosling at Sun Microsystems

More information

Vlsi Design of Cache Compression in Microprocessor Using Pattern Matching Technique

Vlsi Design of Cache Compression in Microprocessor Using Pattern Matching Technique IOSR Journal of Electronics and Communication Engineering (IOSRJECE) ISSN : 2278-2834 Volume 1, Issue 6 (July-Aug 2012), PP 31-37 Vlsi Design of Cache Compression in Microprocessor Using Pattern Matching

More information

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications Rodrigo Bruno Luis Picciochi Oliveira Paulo Ferreira 03-160447 Tomokazu HIGUCHI Paper Information Published

More information

Tuning Garbage Collection for Reducing Memory System Energy in an Embedded Java Environment

Tuning Garbage Collection for Reducing Memory System Energy in an Embedded Java Environment Tuning Garbage Collection for Reducing Memory System Energy in an Embedded Java Environment G. CHEN, R. SHETTY, M. KANDEMIR, N. VIJAYKRISHNAN and M. J. IRWIN Microsystems Design Lab, The Pennsylvania State

More information

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices LINGLI ZHANG and CHANDRA KRINTZ University of California, Santa Barbara Java Virtual Machines (JVMs)

More information

Advanced Object-Oriented Programming Introduction to OOP and Java

Advanced Object-Oriented Programming Introduction to OOP and Java Advanced Object-Oriented Programming Introduction to OOP and Java Dr. Kulwadee Somboonviwat International College, KMITL kskulwad@kmitl.ac.th Course Objectives Solidify object-oriented programming skills

More information

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices LINGLI ZHANG, CHANDRA KRINTZ University of California, Santa Barbara Java Virtual Machines (JVMs)

More information

Run-Time Environments/Garbage Collection

Run-Time Environments/Garbage Collection Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs

More information

Project Overview. Readings and References. Initial project motivation. Opportunity. References. CSE 403, Winter 2003 Software Engineering

Project Overview. Readings and References. Initial project motivation. Opportunity. References. CSE 403, Winter 2003 Software Engineering Readings and References Project Overview CSE 403, Winter 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03wi/ References» What will people pay for? Dan Bricklin.» Accessing

More information

Garbage Collection. Hwansoo Han

Garbage Collection. Hwansoo Han Garbage Collection Hwansoo Han Heap Memory Garbage collection Automatically reclaim the space that the running program can never access again Performed by the runtime system Two parts of a garbage collector

More information

Data Compression for Bitmap Indexes. Y. Chen

Data Compression for Bitmap Indexes. Y. Chen Data Compression for Bitmap Indexes Y. Chen Abstract Compression Ratio (CR) and Logical Operation Time (LOT) are two major measures of the efficiency of bitmap indexing. Previous works by [5, 9, 10, 11]

More information

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++

More information

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

Lecture Notes on Garbage Collection

Lecture Notes on Garbage Collection Lecture Notes on Garbage Collection 15-411: Compiler Design Frank Pfenning Lecture 21 November 4, 2014 These brief notes only contain a short overview, a few pointers to the literature with detailed descriptions,

More information

Basic Compression Library

Basic Compression Library Basic Compression Library Manual API version 1.2 July 22, 2006 c 2003-2006 Marcus Geelnard Summary This document describes the algorithms used in the Basic Compression Library, and how to use the library

More information

Java On Steroids: Sun s High-Performance Java Implementation. History

Java On Steroids: Sun s High-Performance Java Implementation. History Java On Steroids: Sun s High-Performance Java Implementation Urs Hölzle Lars Bak Steffen Grarup Robert Griesemer Srdjan Mitrovic Sun Microsystems History First Java implementations: interpreters compact

More information

Towards Parallel, Scalable VM Services

Towards Parallel, Scalable VM Services Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors

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

Java Performance: The Definitive Guide

Java Performance: The Definitive Guide Java Performance: The Definitive Guide Scott Oaks Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface ix 1. Introduction 1 A Brief Outline 2 Platforms and Conventions 2 JVM

More information

Deallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection

Deallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection Deallocation Mechanisms User-controlled Deallocation Allocating heap space is fairly easy. But how do we deallocate heap memory no longer in use? Sometimes we may never need to deallocate! If heaps objects

More information

CS 5523 Operating Systems: Memory Management (SGG-8)

CS 5523 Operating Systems: Memory Management (SGG-8) CS 5523 Operating Systems: Memory Management (SGG-8) Instructor: Dr Tongping Liu Thank Dr Dakai Zhu, Dr Palden Lama, and Dr Tim Richards (UMASS) for providing their slides Outline Simple memory management:

More information

Course Outline. Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems

Course Outline. Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems Course Outline Processes CPU Scheduling Synchronization & Deadlock Memory Management File Systems & I/O Distributed Systems 1 Today: Memory Management Terminology Uniprogramming Multiprogramming Contiguous

More information

Transparent Pointer Compression for Linked Data Structures

Transparent Pointer Compression for Linked Data Structures Transparent Pointer Compression for Linked Data Structures lattner@cs.uiuc.edu Vikram Adve vadve@cs.uiuc.edu June 12, 2005 MSP 2005 http://llvm.cs.uiuc.edu llvm.cs.uiuc.edu/ Growth of 64-bit computing

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

CS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 11

CS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 11 CS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 11 CS 536 Spring 2015 1 Handling Overloaded Declarations Two approaches are popular: 1. Create a single symbol table

More information

Diagnostics in Testing and Performance Engineering

Diagnostics in Testing and Performance Engineering Diagnostics in Testing and Performance Engineering This document talks about importance of diagnostics in application testing and performance engineering space. Here are some of the diagnostics best practices

More information

Java Internals. Frank Yellin Tim Lindholm JavaSoft

Java Internals. Frank Yellin Tim Lindholm JavaSoft Java Internals Frank Yellin Tim Lindholm JavaSoft About This Talk The JavaSoft implementation of the Java Virtual Machine (JDK 1.0.2) Some companies have tweaked our implementation Alternative implementations

More information

Project Overview. CSE 403, Spring 2003 Software Engineering.

Project Overview. CSE 403, Spring 2003 Software Engineering. Project Overview CSE 403, Spring 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03sp/ 2-Apr-2003 Cse403-02-ProjectOverview 2003 University of Washington 1 References Readings

More information

Project Overview. Readings and References. Opportunity. Initial project motivation. References. CSE 403, Spring 2003 Software Engineering

Project Overview. Readings and References. Opportunity. Initial project motivation. References. CSE 403, Spring 2003 Software Engineering Readings and References Project Overview CSE 403, Spring 2003 Software Engineering References» What will people pay for? Dan Bricklin.» Accessing a whole new world via multimedia phones. Dan Gillmor.»

More information

Lesson 2 Dissecting Memory Problems

Lesson 2 Dissecting Memory Problems Lesson 2 Dissecting Memory Problems Poonam Parhar JVM Sustaining Engineer Oracle Agenda 1. Symptoms of Memory Problems 2. Causes of Memory Problems 3. OutOfMemoryError messages 3 Lesson 2-1 Symptoms of

More information

Java Garbage Collector Performance Measurements

Java Garbage Collector Performance Measurements WDS'09 Proceedings of Contributed Papers, Part I, 34 40, 2009. ISBN 978-80-7378-101-9 MATFYZPRESS Java Garbage Collector Performance Measurements P. Libič and P. Tůma Charles University, Faculty of Mathematics

More information

General Purpose GPU Programming. Advanced Operating Systems Tutorial 7

General Purpose GPU Programming. Advanced Operating Systems Tutorial 7 General Purpose GPU Programming Advanced Operating Systems Tutorial 7 Tutorial Outline Review of lectured material Key points Discussion OpenCL Future directions 2 Review of Lectured Material Heterogeneous

More information

Overview of Java 2 Platform, Micro Edition (J2ME )

Overview of Java 2 Platform, Micro Edition (J2ME ) CHAPTER2 Overview of Java 2 Platform, Micro Edition (J2ME ) 2.1 Java 2 Platform Recognizing that one size does not fit all, Sun Microsystems has grouped Java technologies into three editions, each aimed

More information

Swift: A Register-based JIT Compiler for Embedded JVMs

Swift: A Register-based JIT Compiler for Embedded JVMs Swift: A Register-based JIT Compiler for Embedded JVMs Yuan Zhang, Min Yang, Bo Zhou, Zhemin Yang, Weihua Zhang, Binyu Zang Fudan University Eighth Conference on Virtual Execution Environment (VEE 2012)

More information

Hardware Concurrent Garbage Collection for Shortlived Objects in Mobile Java Devices

Hardware Concurrent Garbage Collection for Shortlived Objects in Mobile Java Devices Hardware Concurrent Garbage Collection for Shortlived Objects in Mobile Java Devices Yau Chi Hang, Tan Yi Yu, Fong Anthony S., Yu Wing Shing Department of Electronic Engineering, City University of Hong

More information

Software Development & Education Center. Java Platform, Micro Edition. (Mobile Java)

Software Development & Education Center. Java Platform, Micro Edition. (Mobile Java) Software Development & Education Center Java Platform, Micro Edition (Mobile Java) Detailed Curriculum UNIT 1: Introduction Understanding J2ME Configurations Connected Device Configuration Connected, Limited

More information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

Tracking Object Life Cycle for Leakage Energy Optimization Λ

Tracking Object Life Cycle for Leakage Energy Optimization Λ Tracking Object Life Cycle for Leakage Energy Optimization Λ G. Chen, N. Vijaykrishnan, M. Kandemir, M. J. Irwin Department of Computer Science and Engineering The Pennsylvania State University University

More information

Java Performance Tuning

Java Performance Tuning 443 North Clark St, Suite 350 Chicago, IL 60654 Phone: (312) 229-1727 Java Performance Tuning This white paper presents the basics of Java Performance Tuning and its preferred values for large deployments

More information

B.V. Patel Institute of BMC & IT, UTU 2014

B.V. Patel Institute of BMC & IT, UTU 2014 BCA 3 rd Semester 030010301 - Java Programming Unit-1(Java Platform and Programming Elements) Q-1 Answer the following question in short. [1 Mark each] 1. Who is known as creator of JAVA? 2. Why do we

More information

CSc 453 Interpreters & Interpretation

CSc 453 Interpreters & Interpretation CSc 453 Interpreters & Interpretation Saumya Debray The University of Arizona Tucson Interpreters An interpreter is a program that executes another program. An interpreter implements a virtual machine,

More information

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I Memory Performance of Algorithms CSE 32 Data Structures Lecture Algorithm Performance Factors Algorithm choices (asymptotic running time) O(n 2 ) or O(n log n) Data structure choices List or Arrays Language

More information

JerryScript An ultra-lightweight JavaScript engine for the Internet of Things

JerryScript An ultra-lightweight JavaScript engine for the Internet of Things JerryScript An ultra-lightweight JavaScript engine for the Internet of Things Tilmann Scheller Principal Compiler Engineer t.scheller@samsung.com Samsung Research UK OpenIoT Summit Europe 2016 Berlin,

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

picojava I Java Processor Core DATA SHEET DESCRIPTION

picojava I Java Processor Core DATA SHEET DESCRIPTION picojava I DATA SHEET DESCRIPTION picojava I is a uniquely designed processor core which natively executes Java bytecodes as defined by the Java Virtual Machine (JVM). Most processors require the JVM to

More information

Automatic Memory Management

Automatic Memory Management Automatic Memory Management Why Automatic Memory Management? Storage management is still a hard problem in modern programming Why Automatic Memory Management? Storage management is still a hard problem

More information

ConnX D2 DSP Engine. A Flexible 2-MAC DSP. Dual-MAC, 16-bit Fixed-Point Communications DSP PRODUCT BRIEF FEATURES BENEFITS. ConnX D2 DSP Engine

ConnX D2 DSP Engine. A Flexible 2-MAC DSP. Dual-MAC, 16-bit Fixed-Point Communications DSP PRODUCT BRIEF FEATURES BENEFITS. ConnX D2 DSP Engine PRODUCT BRIEF ConnX D2 DSP Engine Dual-MAC, 16-bit Fixed-Point Communications DSP FEATURES BENEFITS Both SIMD and 2-way FLIX (parallel VLIW) operations Optimized, vectorizing XCC Compiler High-performance

More information

Characterization of Native Signal Processing Extensions

Characterization of Native Signal Processing Extensions Characterization of Native Signal Processing Extensions Jason Law Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 jlaw@mail.utexas.edu Abstract Soon if

More information

Runtime. The optimized program is ready to run What sorts of facilities are available at runtime

Runtime. The optimized program is ready to run What sorts of facilities are available at runtime Runtime The optimized program is ready to run What sorts of facilities are available at runtime Compiler Passes Analysis of input program (front-end) character stream Lexical Analysis token stream Syntactic

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

CSE 373 OCTOBER 23 RD MEMORY AND HARDWARE

CSE 373 OCTOBER 23 RD MEMORY AND HARDWARE CSE 373 OCTOBER 23 RD MEMORY AND HARDWARE MEMORY ANALYSIS Similar to runtime analysis MEMORY ANALYSIS Similar to runtime analysis Consider the worst case MEMORY ANALYSIS Similar to runtime analysis Rather

More information

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA Mobile Application Development Introduction Dr. Christelle Scharff cscharff@pace.edu Pace University, USA Objectives Getting an overview of the mobile phone market, its possibilities and weaknesses Providing

More information

Space and Time-Efficient Hashing of Garbage-Collected Objects

Space and Time-Efficient Hashing of Garbage-Collected Objects SML document #97-0203 To appear in Theory and Practice of Object Systems, 1998. Space and Time-Efficient Hashing of Garbage-Collected Objects Ole Agesen Sun Microsystems 2 Elizabeth Drive Chelmsford, MA

More information

Java Jitters - The Effects of Java on Jitter in a Continuous Media Server

Java Jitters - The Effects of Java on Jitter in a Continuous Media Server Introduction Java Jitters - The Effects of Java on Jitter in a Continuous Media Server Mark Claypool and Jonathan Tanner Computer Science Department, Worcester Polytechnic Institute {claypool,jtanner}@cs.wpi.edu

More information

Operating- System Structures

Operating- System Structures Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What

More information

SOSCON 2016 JerryScript

SOSCON 2016 JerryScript SOSCON 2016 JerryScript An ultra-lightweight JavaScript engine for the Internet of Things Samsung Electronics SRUK OSG Tilmann Scheller 18.11.2016 Overview Introduction JerryScript JerryScript Internals

More information

EEM870 Embedded System and Experiment Lecture 3: ARM Processor Architecture

EEM870 Embedded System and Experiment Lecture 3: ARM Processor Architecture EEM870 Embedded System and Experiment Lecture 3: ARM Processor Architecture Wen-Yen Lin, Ph.D. Department of Electrical Engineering Chang Gung University Email: wylin@mail.cgu.edu.tw March 2014 Agenda

More information

Untyped Memory in the Java Virtual Machine

Untyped Memory in the Java Virtual Machine Untyped Memory in the Java Virtual Machine Andreas Gal and Michael Franz University of California, Irvine {gal,franz}@uci.edu Christian W. Probst Technical University of Denmark probst@imm.dtu.dk July

More information

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck Main memory management CMSC 411 Computer Systems Architecture Lecture 16 Memory Hierarchy 3 (Main Memory & Memory) Questions: How big should main memory be? How to handle reads and writes? How to find

More information

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1 SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable

More information

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. OS and Computer Architecture Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation

More information

Java Performance Tuning From A Garbage Collection Perspective. Nagendra Nagarajayya MDE

Java Performance Tuning From A Garbage Collection Perspective. Nagendra Nagarajayya MDE Java Performance Tuning From A Garbage Collection Perspective Nagendra Nagarajayya MDE Agenda Introduction To Garbage Collection Performance Problems Due To Garbage Collection Performance Tuning Manual

More information

Using Transparent Compression to Improve SSD-based I/O Caches

Using Transparent Compression to Improve SSD-based I/O Caches Using Transparent Compression to Improve SSD-based I/O Caches Thanos Makatos, Yannis Klonatos, Manolis Marazakis, Michail D. Flouris, and Angelos Bilas {mcatos,klonatos,maraz,flouris,bilas}@ics.forth.gr

More information

Kodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd.

Kodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd. Kodewerk tm Java Performance Services The War on Latency Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd. Me Work as a performance tuning freelancer Nominated Sun Java Champion www.kodewerk.com

More information

Testing in Resource Constrained Execution Environments

Testing in Resource Constrained Execution Environments Testing in Resource Constrained Execution Environments Gregory M. Kapfhammer Allegheny College gkapfham@allegheny.edu Mary Lou Soffa University of Virginia soffa@cs.virginia.edu Daniel Mosse University

More information

Top Ten Enterprise Java performance problems. Vincent Partington Xebia

Top Ten Enterprise Java performance problems. Vincent Partington Xebia Top Ten Enterprise Java performance problems and their solutions Vincent Partington Xebia Introduction Xebia is into Enterprise Java: Development Performance audits a.o. Lots of experience with performance

More information

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip Reducing Hit Times Critical Influence on cycle-time or CPI Keep L1 small and simple small is always faster and can be put on chip interesting compromise is to keep the tags on chip and the block data off

More information

Delft-Java Link Translation Buffer

Delft-Java Link Translation Buffer Delft-Java Link Translation Buffer John Glossner 1,2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs Advanced DSP Architecture and Compiler Research Allentown, Pa glossner@lucent.com 2 Delft University

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Dynamic Storage Allocation

Dynamic Storage Allocation 6.172 Performance Engineering of Software Systems LECTURE 10 Dynamic Storage Allocation Charles E. Leiserson October 12, 2010 2010 Charles E. Leiserson 1 Stack Allocation Array and pointer A un Allocate

More information