317,210 research outputs found

    Liveness-Based Garbage Collection for Lazy Languages

    Full text link
    We consider the problem of reducing the memory required to run lazy first-order functional programs. Our approach is to analyze programs for liveness of heap-allocated data. The result of the analysis is used to preserve only live data---a subset of reachable data---during garbage collection. The result is an increase in the garbage reclaimed and a reduction in the peak memory requirement of programs. While this technique has already been shown to yield benefits for eager first-order languages, the lack of a statically determinable execution order and the presence of closures pose new challenges for lazy languages. These require changes both in the liveness analysis itself and in the design of the garbage collector. To show the effectiveness of our method, we implemented a copying collector that uses the results of the liveness analysis to preserve live objects, both evaluated (i.e., in WHNF) and closures. Our experiments confirm that for programs running with a liveness-based garbage collector, there is a significant decrease in peak memory requirements. In addition, a sizable reduction in the number of collections ensures that in spite of using a more complex garbage collector, the execution times of programs running with liveness and reachability-based collectors remain comparable

    A Method for the Combination of Stochastic Time Varying Load Effects

    Get PDF
    The problem of evaluating the probability that a structure becomes unsafe under a combination of loads, over a given time period, is addressed. The loads and load effects are modeled as either pulse (static problem) processes with random occurrence time, intensity and a specified shape or intermittent continuous (dynamic problem) processes which are zero mean Gaussian processes superimposed 'on a pulse process. The load coincidence method is extended to problems with both nonlinear limit states and dynamic responses, including the case of correlated dynamic responses. The technique of linearization of a nonlinear limit state commonly used in a time-invariant problem is investigated for timevarying combination problems, with emphasis on selecting the linearization point. Results are compared with other methods, namely the method based on upcrossing rate, simpler combination rules such as Square Root of Sum of Squares and Turkstra's rule. Correlated effects among dynamic loads are examined to see how results differ from correlated static loads and to demonstrate which types of load dependencies are most important, i.e., affect' the exceedance probabilities the most. Application of the load coincidence method to code development is briefly discussed.National Science Foundation Grants CME 79-18053 and CEE 82-0759
    • …
    corecore