共查询到20条相似文献,搜索用时 0 毫秒
1.
为提高堆空间的利用率,许多垃圾收集器在标记扫描对象后加入\"压缩\"过程,主要有\"标记-压缩\"和\"拷贝\"两类垃圾收集器.垃圾收集时需要暂停程序的运行,为了减少这种时间开销,基于\"拷贝\"算法,垃圾收集器CCone在一次堆遍历中完成压缩过程和引用更新过程,而现有的算法至少需要两遍.此外,CCone基于\"拷贝\"算法充分利用多核和多线程技术,以页为单位,利用多线程启动多个垃圾收集器对堆空间进行垃圾回收.性能测试表明并行的CCone相比较传统的压缩垃圾收集器在吞吐量上有超过10%的提升,而由算法带来的开销可以忽略不计. 相似文献
2.
The memory intensive nature of object-oriented languages such as C++ and Java has created the need of a high-performance dynamic memory management. Object-oriented applications often generate higher memory intensity in the heap region. Thus, high-performance memory manager is needed to cope with such applications. As today's VLSI technology advances, it becomes more and more attractive to map software algorithms such as malloc(), free(), realloc(), and garbage collection into hardware. This paper presents hardware designs of realloc function and sweeping function (for mark and sweep garbage collection) that fully utilize the advantages of combinational logic. In our scheme, the reallocation on the original block can be done in constant time. If the reallocation on the original block is not possible, the previously proposed malloc() and free() can be used to move the contents to a new location. For the sweeping function, the bit-sweeper can detect and sweep the garbage in constant time. Since the sweeping phase often consumes more time than the marking phase, the garbage collection time can be substantially improved. The hardware complexity of proposed scheme (i.e. X-Unit, RS-unit, ESG-unit, and bit-sweeper) is O(n), where n represents the size of bit-map. 相似文献
3.
It is well accepted that automatic garbage collection simplifies programming, promotes modularity, and reduces development effort. However it is commonly believed that these advantages do not counteract the perceived price: excessive overheads, possible long pause times while garbage collections occur, and the need to modify existing code. Even though there are publically available garbage collector implementations that can be used in existing programs, they do not guarantee short pauses, and some modification of the application using them is still required. In this paper we describe a snapshot-at-beginning concurrent garbage collector algorithm and its implementation. This algorithm guarantees short pauses, and can be easily implemented on stock UNIX-like operating systems. Our results show that our collector performs comparable to other garbage collection implementations on uniprocessor machines and outperforms similar collectors on multiprocessor machines. We also show our collector to be competitive in performance with explicit deallocation. Our collector has the added advantage of being non-intrusive. Using a dynamic linking technique and effective root set inferencing, we have been able to successfully run our collector even in commercial programs where only the binary executable and no source code is available. In this paper we describe our algorithm, its implementation, and provide both an algorithmic and a performance comparison between our collector and other similar garbage collectors. ©1997 by John Wiley & Sons, Ltd. 相似文献
4.
We propose the use of generations with modern reference counting. A reference counting collector is well suited to collect the old generation, containing a large fraction of live objects that are modified infrequently. Such a collector can be combined with a tracing collector to collect the young generation, typically containing a small fraction of live objects. We have designed such a collector appropriate for running on a multiprocessor. As our building blocks, we used the sliding‐views on‐the‐fly collectors. We have implemented the new collector on the Jikes Research Java Virtual Machine (Jikes RVM) and compared it with the concurrent reference counting collector supplied with the Jikes RVM package. Our measurements demonstrate short pause times, retaining those of the original on‐the‐fly collectors and a gain in application throughput time. It turns out that a modern reference counting collector may benefit from the use of generations. Copyright © 2006 John Wiley & Sons, Ltd. 相似文献
5.
阐述了一种适用于嵌入式Java虚拟机的垃圾回收算法。该算法对分代回收算法中代的划分方式,引用跟踪等方面进行改进,以降低对运行时间和内存空间的需求,从而使其适用于资源有限的嵌入式环境。试验结果表明,该算法有效提高了垃圾回收效率。 相似文献
7.
A hardware self-managing heap memory (RCM) for languages like Lisp, Smalltalk, and Java has been designed, built, tested and benchmarked. On every pointer write from the processor, reference-counting transactions are performed in real time within this memory, and garbage cells are reused without processor cycles. A processor allocates new nodes simply by reading from a distinguished location in its address space. The memory hardware also incorporates support for off-line, multiprocessing, mark-sweep garbage collection.Performance statistics are presented from a partial implementation of Scheme over five different memory models and two garbage collection strategies, from main memory (no access to RCM) to a fully operational RCM installed on an external bus. The performance of the RCM memory is more than competitive with main memory. 相似文献
8.
提出了一种适用于实时性环境的Java虚拟机垃圾收集算法。该算法对增量式收集器中堆空间的划分方式、引用跟踪等方面进行了改进,以减少垃圾收集带来的不确定性暂停,并可以使用户指定一个时间段内垃圾收集导致应用程序暂停的最长时间,从而使其适用于实时性环境。实验结果表明,该算法有效减少了暂停的频率和时长。 相似文献
9.
One major problem of using Java in real-time and embedded devices is the non-deterministic turnaround time of dynamic memory management systems (memory allocation and garbage collection). For the allocation, the non-determinism is often contributed by the time to perform searching, splitting, and coalescing. For the garbage collection, the turnaround time is usually determined by the size of the heap, the number of live objects, the number of object collected, and the amount of garbage collected. Even with the current state-of-the-art garbage collectors (generational and incremental schemes), they may or may not guarantee the worst-case latency. Moreover, such schemes often prolong overall garbage collection time. In this paper, the performance analysis of the proposed Active Memory Module (AMM) for embedded systems is presented. Unlike the software counterparts, the AMM can perform a memory allocation in a predictable and bounded fashion (14 cycles). Moreover, it can also yield a bounded sweeping time regardless of the number of live objects or heap size. By utilizing the proposed system, the overall speedup can be as high as 23% compared to the garbage collection system of the JDK 1.2.2 running in classic mode. 相似文献
10.
Java语言的一个显著特点是它通过虚拟机和垃圾回收机制管理着大部分的内存事务,但是在Java程序中还是可能存在内存泄漏问题。文中首先对Java内存泄漏做一个简要的定义,接着围绕一个实例详细地介绍如何用工具检测Java内存泄漏,最后列举了一些典型的泄漏,以便读者在Java程序开发中尽量避免类似的内存泄漏。 相似文献
11.
Java虚拟机(JVM)的垃圾回收是由虚拟机设计者自行设计的部分。传统的垃圾收集方法往往收集时间过长,程序员对安排CPU时间进行内存回收缺乏控制。本文主要讨论的是基于嵌入式系统的JVM在垃圾回收上的策略,该策略在分代回收的基础之上采用渐进收集的思想,最终获得非破坏性垃圾收集的效果。 相似文献
12.
提出了一种新的分布式垃圾搜集器(GC)机制,即基于关键引用验证的分布式GC。性能分析说明,与以往的分布式GC相比,该算法能以最短的时间延迟回收循环垃圾。尽管该算法为保留引用列表和验证过程需要额外的一些存储空间,但具有一定的实时性和较好的容错性,综合性能较好,适用于大规模分布式系统。 相似文献
13.
C#是一种新的面向对象的程序设计语言,进一步研究C#程序设计的内存分配,就必须涉及.NET Framwork的概念,因为C#是专门为.NET Framework而设计的程序设计语言。本文主要叙述了C#和.NET程序设计中内存管理的特点和对程序设计性能的影响,并且就C#和传统的程序设计语言作了比较。 相似文献
14.
Summary. Distributed systems with a large number of nodes use internode reference counting for timely and fault-tolerant garbage collection.
However, this fails to collect cyclic garbage distributed across nodes. One fix is to migrate all objects on a garbage cycle
to a single node, where they can be collected by the tracing-based local collector. Existing proposals based on this technique
have practical problems due to unnecessary migration of objects. We propose a scheme that avoids migration of live objects,
batches objects to avoid a cascade of migration messages, and short-cuts the migration path to avoid multiple migrations.
We use simple estimates to detect objects that are highly likely to be cyclic garbage and to select a node to which such objects
are migrated. The scheme collects all distributed cyclic garbage, has low overhead, and preserves the decentralized and fault-tolerant
nature of distributed reference counting and migration.
Received: August 1995 / Accepted: August 1996 相似文献
15.
Java语言因其在软件工程上的优势而被广泛地用来进行服务器应用的开发.这些应用中通常存在着大量的长生命周期的对象.单一的经典的垃圾收集算法不能够有效地减少对长生命周期对象的重复处理.一种基于长生命周期对象的混合垃圾收集算法(LLH)被设计和实现.该算法结合了缩并,复制和分代收集的特点,通过这些经典算法的动态切换与协作来解决这一问题.实验结果表明,与经典的分代垃圾收集相比,LLH收集算法能够使SPECjbb 2005的Throughput分值提高3%~25%. 相似文献
16.
Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations, including real time applications or within traditional programming languages. However, optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhibits a predictable pattern of memory usage that could be better handled specifically, delaying as much as possible the intervention of the general purpose collector. This leads to the requirement for algorithm specific customisation of the collector strategies. We present a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case. The Customisable Memory Manager (CMM) organises memory in multiple heaps. Each heap is an instance of C++ class which abstracts and encapsulates a particular storage discipline. The default heap for collectable objects uses the technique of mostly copying garbage collection, providing good performance and memory compaction. Customisation of the collector is achieved exploiting object orientation by defining specialised versions of the collector methods for each heap class. The object-oriented interface to the collector enables coexistence and coordination among the various collectors as well as integration with traditional code unaware of garbage collection. The CMM is implemented in C++ without any special support in the language or the compiler. The techniques used in the CMM are general enough to be applicable also to other languages. The performance of the CMM is analysed and compared to other conservative collectors for C/C++ in various configurations. © 1998 John Wiley & Sons, Ltd. 相似文献
18.
In this paper,the hard problem of the thorough garbage collection in uncoordinated checkpointing algorithms is studied.After introduction of the traditional garbage collecting scheme,with which only obsolete checkpoints can be discarded,it is shown that this kind of traditional method may fail to discard any checkpoint in some special cases,and it is necessary and urgent to find a thorough garbage collecting method,with which all the checkpoints useless for any future rollback-recovery including the obsolete ones can be discarded.Then,th Thorough Garbage Collection Theorem is proposed and proved,which ensures th feasibility of the thorough garbage collection,and gives the method to calculate the set of the useful checkpoints as well. 相似文献
19.
针对云存储文件系统中,复杂的检索和回收过程导致系统处理用户数据的能力下降问题,基于日志结构分布式文件系统(HDFS-based Log-structured File System ,HLFS),提出一种针对系统资源进行有效回收管理来提高云存储空间有效利用率的方法,通过位图标记的方式找到HLFS中段资源的使用情况,实现对HLFS中段资源的管理回收。实验结果表明,位图标记应用于云存储系统中资源管理之后,能够改善垃圾回收的效率。 相似文献
20.
垃圾回收有效地减轻了编程人员的负担、优化了程序的设计,在基于弱一致性模型的分布式共享存储系统中进行自动垃圾回收是非常困难的和低效的,本文提出了一种基于跟踪策略的实时分布式垃圾回收算法--RRDGC,使得各节点回收进程可以和应用程序并发执行,同时有效减少了弱一致性模型下额外的通信开销,降低了程序的响应时间.算法确保了垃圾回收的正确性和有效性,体现了增量和实时性的特点.最后通过仿真实验对比论证了该算法的正确性和高效性. 相似文献
|