4 resultados para heap

em Indian Institute of Science - Bangalore - Índia


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:

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.