29 research outputs found

    Protected Heap Sharing for Memory-Constrained Java Environments

    No full text
    ABSTRACT Multitasking is one of capabilities we often want to have in memoryconstrained embedded systems. To support multiple address spaces within a small physical memory, a simple memory management frequently encounters the lack of available memory. Our paper presents an efficient heap memory management scheme that reduces memory footprints by adaptively sharing heaps among multiple tasks in JVM environments. We modified KVM from Sun Microsystems so that Java applications acquire or release heaps in a shared pool on an as-needed basis. To protect address spaces among tasks in the absence of virtual memory capabilities, we use memory protection units (MPUs) by incorporating them into our heap sharing scheme. Our experiments with J2ME MIDP applications show significant reductions by 33% on average, ranging from 6% to 50% in memory usage over the execution. The overheads of our scheme in garbage collection are kept low. The execution times in our scheme increase only by 0.2% on average

    Layout Transformations for Heap Objects Using Static Access Patterns

    No full text
    As the amount of data used by programs increases due to the growth of the hardware storage capacity, efficient memory usage is a key factor to performance. Since modern applications heavily use structures allocated in the heap, this paper particularly concentrates on the optimizations of those structures using compile-time analyses. To make optimization procedures entirely static, we propose a novel approach to represent memory access patterns with regular expressions. Repetitive accesses are usually important information for locality optimizations. The expressive power of regular expressions is appropriate to denote those repetitive accesses along with various access patterns according to the control flow of programs. By interpreting statically calculated access patterns, we choose appropriate structures for pool allocation and reorganize the field layouts of the chosen structures as well. To verify the effect of our static optimizations, we implement our analyses and optimizations based on a field restructuring scheme. Our experiments with the Olden benchmarks demonstrate that the layout transformation scheme for heap objects dramatically improves cache locality by 36 % and performance by 31%

    A Comparison of Locality Transformations for Irregular Codes

    No full text
    . Researchers have proposed several data and computation transformations to improve locality in irregular scientific codes. We experimentally compare their performance and present gpart, a new technique based on hierarchical clustering. Quality partitions are constructed quickly by clustering multiple neighboring nodes with priority on nodes with high degree, and repeating a few passes. Overhead is kept low by clustering multiple nodes in each pass and considering only edges between partitions. Experimental results show gpart matches the performance of more sophisticated partitioning algorithms to with 6%--8%, with a small fraction of the overhead. It is thus useful for optimizing programs whose running times are not known. 1 Introduction As microprocessors become increasingly fast, memory system performance begins to dictate overall performance. The ability of applications to exploit locality by keeping references in cache becomes a major factor affecting performance. Comp..
    corecore