60 resultados para heap


Relevância:

20.00% 20.00%

Publicador:

Resumo:

Context sensitive pointer analyses based on Whaley and Lam’s bddbddb system have been shown to scale to large Java programs. We provide a technique to incorporate flow sensitivity for Java fields into one such analysis and obtain an escape analysis based on it. First, we express an intraprocedural field flow sensitive analysis, using Fink et al.’s Heap Array SSA form in Datalog. We then extend this analysis interprocedurally by introducing two new φ functions for Heap Array SSA Form and adding deduction rules corresponding to them. Adding a few more rules gives us an escape analysis. We describe two types of field flow sensitivity: partial (PFFS) and full (FFFS), the former without strong updates to fields and the latter with strong updates. We compare these analyses with two different (field flow insensitive) versions of Whaley-Lam analysis: one of which is flow sensitive for locals (FS) and the other, flow insensitive for locals (FIS). We have implemented this analysis on the bddbddb system while using the SOOT open source framework as a front end. We have run our analysis on a set of 15 Java programs. Our experimental results show that the time taken by our field flow sensitive analyses is comparable to that of the field flow insensitive versions while doing much better in some cases. Our PFFS analysis achieves average reductions of about 23% and 30% in the size of the points-to sets at load and store statements respectively and discovers 71% more “caller-captured” objects than FIS.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

This paper introduces a novel technique for identifying logically related sections of the heap such as recursive data structures, objects that are part of the same multi-component structure, and related groups of objects stored in the same collection/array. When combined withthe lifetime properties of these structures, this information can be used to drive a range of program optimizations including pool allocation, object co-location, static deallocation, and region-based garbage collection. The technique outlined in this paper also improves the efficiency of the static analysis by providing a normal form for the abstract models (speeding the convergence of the static analysis). We focus on two techniques for grouping parts of the heap. The first is a technique for precisely identifying recursive data structures in object-oriented programs based on the types declared in the program. The second technique is a novel method for grouping objects that make up the same composite structure and that allows us to partition the objects stored in a collection/array into groups based on a similarity relation. We provide a parametric component in the similarity relation in order to support specific analysis applications (such as a numeric analysis which would need to partition the objects based on numeric properties of the fields). Using the Barnes-Hut benchmark from the JOlden suite we show how these grouping methods can be used to identify various types of logical structures allowing the application of many region-based program optimizations.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Memory analysis techniques have become sophisticated enough to model, with a high degree of accuracy, the manipulation of simple memory structures (finite structures, single/double linked lists and trees). However, modern programming languages provide extensive library support including a wide range of generic collection objects that make use of complex internal data structures. While these data structures ensure that the collections are efficient, often these representations cannot be effectively modeled by existing methods (either due to excessive analysis runtime or due to the inability to represent the required information). This paper presents a method to represent collections using an abstraction of their semantics. The construction of the abstract semantics for the collection objects is done in a manner that allows individual elements in the collections to be identified. Our construction also supports iterators over the collections and is able to model the position of the iterators with respect to the elements in the collection. By ordering the contents of the collection based on the iterator position, the model can represent a notion of progress when iteratively manipulating the contents of a collection. These features allow strong updates to the individual elements in the collection as well as strong updates over the collections themselves.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Modeling the evolution of the state of program memory during program execution is critical to many parallehzation techniques. Current memory analysis techniques either provide very accurate information but run prohibitively slowly or produce very conservative results. An approach based on abstract interpretation is presented for analyzing programs at compile time, which can accurately determine many important program properties such as aliasing, logical data structures and shape. These properties are known to be critical for transforming a single threaded program into a versión that can be run on múltiple execution units in parallel. The analysis is shown to be of polynomial complexity in the size of the memory heap. Experimental results for benchmarks in the Jolden suite are given. These results show that in practice the analysis method is efflcient and is capable of accurately determining shape information in programs that créate and manipúlate complex data structures.

Relevância:

20.00% 20.00%

Publicador:

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A broad range of positions is articulated in the academic literature around the relationship between recordings and live performance. Auslander (2008) argues that “live performance ceased long ago to be the primary experience of popular music, with the result that most live performances of popular music now seek to replicate the music on the recording”. Elliott (1995) suggests that “hit songs are often conceived and produced as unambiguous and meticulously recorded performances that their originators often duplicate exactly in live performances”. Wurtzler (1992) argues that “as socially and historically produced, the categories of the live and the recorded are defined in a mutually exclusive relationship, in that the notion of the live is premised on the absence of recording and the defining fact of the recorded is the absence of the live”. Yet many artists perform in ways that fundamentally challenge such positions. Whilst it is common practice for musicians across many musical genres to compose and construct their musical works in the studio such that the recording is, in Auslander’s words, the ‘original performance’, the live version is not simply an attempt to replicate the recorded version. Indeed in some cases, such replication is impossible. There are well known historical examples. Queen, for example, never performed the a cappella sections of Bohemian Rhapsody because it they were too complex to perform live. A 1966 recording of the Beach Boys studio creation Good Vibrations shows them struggling through the song prior to its release. This paper argues that as technology develops, the lines between the recording studio and live performance change and become more blurred. New models for performance emerge. In a 2010 live performance given by Grammy Award winning artist Imogen Heap in New York, the artist undertakes a live, improvised construction of a piece as a performative act. She invites the audience to choose the key for the track and proceeds to layer up the various parts in front of the audience as a live performance act. Her recording process is thus revealed on stage in real time and she performs a process that what would have once been confined to the recording studio. So how do artists bring studio production processes into the live context? What aspects of studio production are now performable and what consistent models can be identified amongst the various approaches now seen? This paper will present an overview of approaches to performative realisations of studio produced tracks and will illuminate some emerging relationships between recorded music and performance across a range of contexts.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

In this paper I offer a counterexample to the so called vagueness argument against restricted composition. This will be done in the lines of a recent suggestion by Trenton Merricks, namely by challenging the claim that there cannot be a sharp cut-off point in a composition sequence. It will be suggested that causal powers which emerge when composition occurs can serve as an indicator of such sharp cut-off points. The main example will be the case of a heap. It seems that heaps might provide a very plausible counterexample to the vagueness argument if we accept the idea that four grains of sand is the least number required to compose a heap—the case has been supported by W. D. Hart. My purpose here is not to put forward a new theory of composition, I only wish to refute the vagueness argument and point out that we should be wary of arguments of its form.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Most Java programmers would agree that Java is a language that promotes a philosophy of “create and go forth”. By design, temporary objects are meant to be created on the heap, possibly used and then abandoned to be collected by the garbage collector. Excessive generation of temporary objects is termed “object churn” and is a form of software bloat that often leads to performance and memory problems. To mitigate this problem, many compiler optimizations aim at identifying objects that may be allocated on the stack. However, most such optimizations miss large opportunities for memory reuse when dealing with objects inside loops or when dealing with container objects. In this paper, we describe a novel algorithm that detects bloat caused by the creation of temporary container and String objects within a loop. Our analysis determines which objects created within a loop can be reused. Then we describe a source-to-source transformation that efficiently reuses such objects. Empirical evaluation indicates that our solution can reduce upto 40% of temporary object allocations in large programs, resulting in a performance improvement that can be as high as a 20% reduction in the run time, specifically when a program has a high churn rate or when the program is memory intensive and needs to run the GC often.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

The ability to perform strong updates is the main contributor to the precision of flow-sensitive pointer analysis algorithms. Traditional flow-sensitive pointer analyses cannot strongly update pointers residing in the heap. This is a severe restriction for Java programs. In this paper, we propose a new flow-sensitive pointer analysis algorithm for Java that can perform strong updates on heap-based pointers effectively. Instead of points-to graphs, we represent our points-to information as maps from access paths to sets of abstract objects. We have implemented our analysis and run it on several large Java benchmarks. The results show considerable improvement in precision over the points-to graph based flow-insensitive and flow-sensitive analyses, with reasonable running time.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

A combined experimental (infrared, Raman and NMR) and theoretical quantum chemical study is performed on the charge-transfer complex hydroxyethylammonium picrate (HEAP). The infrared (IR) spectra for HEAP were recorded at various temperatures, ranging from 16 K to 299 K, and the Raman spectrum was recorded at room temperature. A comparison of the experimental IR and Raman spectra with the corresponding calculated spectra was done, in order to facilitate interpretation of the experimental data. Formation of the HEAP complex is evidenced by the presence of the most prominent characteristic bands of the constituting groups of the charge-transfer complex e.g., NH3+, CO- and NO2]. Vibrational spectroscopic analysis, together with natural bond orbital (NBO) and theoretical charge density analysis in the crystalline phase, was used to shed light on relevant structural details of HEAP resulting from deprotonation of picric acid followed by formation of a hydrogen bond of the N-H center dot center dot center dot OC type between the hydroxyethylammonium cation and the picrate.C-13 and H-1 NMR spectroscopic analysis are also presented for the DMSO-d(6) solution of the compound revealing that in that medium the HEAP crystal dissolves forming the free picrate and hydroxyethylammonium ions. Finally, the electron excitation analysis of HEAP was performed in an attempt to determine the nature of the most important excited states responsible for the NLO properties exhibited by the compound. (C) 2015 Elsevier B.V. All rights reserved.