共查询到20条相似文献,搜索用时 0 毫秒
1.
Benjamin Zorn 《Software》1993,23(7):733-756
Because dynamic memory management is an important part of a large class of computer programs, high-performance algorithms for dynamic memory management have been, and will continue to be, of considerable interest. Experience indicates that for many programs, dynamic storage allocation is so important that programmers feel compelled to write and use their own domain-specific allocators to avoid the overhead of system libraries. As an alternative to explicit storage management techniques, conservative garbage collection has been suggested as an important algorithm for dynamic storage management in C programs. In this paper, I evaluate the costs of different dynamic storage management algorithms, including domain-specific allocators, widely-used general-purpose allocators, and a publicly available conservative garbage collection algorithm. Surprisingly, I find that programmer enhancements often have little effect on program performance. I also find that the true cost of conservative garbage collection is not the CPU overhead, but the memory system overhead of the algorithm. I conclude that conservative garbage collection is a promising alternative to explicit storage management and that the performance of conservative collection is likely to improve in the future. C programmers should now seriously consider using conservative garbage collection instead of explicitly calling free in programs they write. 相似文献
2.
Andrew W. Appel 《Software》1989,19(2):171-183
Generational garbage collection algorithms achieve efficiency because newer records point to older records; the only way an older record can point to a newer record is by a store operation to a previously created record, and such operations are rare in many languages. A garbage collector that concentrates just on recently allocated records can take advantage of this fact. Such a garbage collector can be so efficient that the allocation of records costs more than their disposal. A scheme for quick record allocation attacks this bottleneck. Many garbage-collected environments do not know when to ask the operating system for more memory. A robust heuristic solves this problem. This paper presents a simple, efficient, low-overhead version of generational garbage collection with fast allocation, suitable for implementation in a Unix environment. 相似文献
3.
嵌入式Linux平台内存管理方案 总被引:1,自引:0,他引:1
不同的动态内存分配算法往往应用于不同场景、面向于不同业务,因此衡量指标不一,性能各异.针对多模式、多业务的数字电视终端,本文提出了一种嵌入式L inux平台内存管理方案,深入剖析了共享内存的原理及方法,采用共享内存技术支撑多业务开展,同时实现了一种使用二级索引策略的动态内存分配算法,复杂度为O(1),相比其他经典算法,实时性高而碎片率低,仿真性能良好,并在嵌入式平台上实施,取得了不错的效果. 相似文献
4.
邵叶秦 《数字社区&智能家居》2007,3(14):455-456
提出了一个有效的C 内存泄漏检测方法.方法在分析内存泄漏的基础上,通过重新实现动态内存分配和释放函数,记录内存分配的确切位置并跟踪动态内存的使用情况.在程序结束时,方法利用跟踪结果检测和定位内存泄漏.最后,通过在Windows和Linux平台上的实验验证了本文方法的有效性. 相似文献
5.
The paper discusses the problem of dynamic storage allocation (DSA) using C in a VMS environment. The problem is studied in a specific context, i.e. fault simulation of logic circuits. However, owing to its intrinsic generality, the adopted solution can be effectively applied to a large number of similar situations. It is shown how the use of standard C-functions for dynamic memory allocation result unacceptable for efficiency reasons and different implementation strategies to solve the problem are presented. 相似文献
6.
该文主要探讨了C++语言教学中在数组使用、动态内存管理、指针使用、浅拷贝等方面应注意的若干问题,并指出正确的处理方法,最后介绍了C++/CLR中的内存管理机制。 相似文献
7.
The allocation and disposal of memory is a ubiquitous operation in most programs. Rarely do programmers concern themselves with details of memory allocators; most assume that memory allocators provided by the system perform well. Yet, in some applications, programmers use domain-specific knowledge in an attempt to improve the speed or memory utilization of memory allocators. In this paper, we describe a program (CustoMalloc) that synthesizes a memory allocator customized for a specific application. Our experiments show that the synthesized allocators are uniformly faster and more space efficient than the Berkeley UNIX allocator. Constructing a custom allocator requires little programmer effort, usually taking only a few minutes. Experience has shown that the synthesized allocators are not overly sensitive to properties of input sets and the resulting allocators are superior even to domain-specific allocators designed by programmers. Measurements show that synthesized allocators are from two to ten times faster than widely-used allocators. 相似文献
8.
Memory leaks are usually not associated with runtime environments with automatic garbage collection; however, memory leaks do happen in such environments and present a challenge to detect and find a root cause. Currently in the industry manual heap dump analysis is the most popular way of finding memory leaks, regardless of the number of automated methods proposed by scientists over the years. However, heap dump analysis alone cannot answer all questions needed to fix the leak effectively. The current paper reviews memory leak detection approaches proposed over the years and classifies them from the point of view of assessed metrics, performance overhead and intrusiveness. In addition, we classify the methods into online, offline and hybrid groups based on their features. 相似文献
9.
It is well known that channel-dependent OFDMA resource assignment algorithms provide a significant performance improvement compared to static (i.e., channel-unaware) approaches. Such dynamic algorithms constantly adapt resource assignments to current channel states according to some objective function. Due to these dynamics, it is difficult to predict the resulting performance for such schemes given a certain scenario (characterized by the number of terminals in the cell and their average channel gains). In this paper we provide a novel, analytical framework for performance prediction, which takes dynamic power and subcarrier allocation into account. The analysis is based on fundamental transformations of the channel gains caused by the dynamic subcarrier allocations. This insight allows for deriving probability functions of the achieved rate per subcarrier which ultimately yields expressions for the expected minimal rates as well as outage probabilities for certain rate demands. Hence, the methods presented in this paper for performance prediction can be employed for admission control in systems with dynamic resource allocation. We illustrate the applicability of our derivations with respect to the capacity of 802.16e systems for Voice-over-IP and video streams. The results demonstrate a significant improvement compared to state-of-the art approaches but also reveal room for improvement of this approach compared to the optimal system performance. 相似文献
10.
11.
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. 相似文献
12.
C/C++程序安全漏洞的分类与分析 总被引:6,自引:0,他引:6
C/C++语言开发者追求的是语言的高效性、灵活性,为此不同程度上忽略了语言的安全性。目前很多机构比如NASA犤2犦等对不同语言中存在的安全问题提供了相关信息,文章在此基础上对C/C++程序中存在的安全漏洞进行分类并为每一小类作简要分析,为开发和确保安全的软件提供了指导 相似文献
13.
Ismail Omar Hababeh Muthu Ramachandran Nicholas Bowring 《The Journal of supercomputing》2007,39(1):3-18
Enhancing the performance of the DDBs (Distributed Database system) can be done by speeding up the computation of the data allocation, leading to higher speed allocation decisions and resulting
in smaller data redundancy and shorter processing time. This paper deals with an integrated method for grouping the distributed
sites into clusters and customizing the database fragments allocation to the clusters and their sites. We design a high speed
clustering and allocating method to determine which fragments would be allocated to which cluster and site so as to maintain
data availability and a constant systemic reliability, and evaluate the performance achieved by this method and demonstrate
its efficiency by means of tabular and graphical representation. We tested our method over different network sites and found
it reduces the data transferred between the sites during the execution time, minimizes the communication cost needed for processing
applications, and handles the database queries and meets their future needs. 相似文献
14.
通过C程序实例引入问题,对C程序设计中的内存使用进行了较为深入的研究。探讨比较了数据在内存不同区域存储的特点及存在的问题,分析了不同存储区域的结构分布情况,该研究对程序开发、教学开展等具有较高的参考价值。 相似文献
15.
该文在深入研究内存数据库系统存储管理技术的基础上,给出了自主开发的内存数据库系统SwiftMMDB存储管理模块的设计与实现方案,针对不同种类的应用背景,设计了两种数据库系统的运行结构以加快本地数据访问;分析并比较了三种内存空间分配方式,使SwiftMMDB能够根据不同应用场合的需求特点选用不同的底层内存分配方式;将哈希索引与T树索引相结合对查询进行优化,提高内存数据库的查询效率。 相似文献
16.
《Computers in Industry》2014,65(6):967-975
The present work addresses the problem of real time workforce scheduling in assembly lines where the number of operators is less to the number of workstations.The problem is faced developing a two-steps procedure made of (i) a centralized scheduling based on a constraint optimization problem (COP) for initial operator scheduling, and (ii) a decentralized algorithm performed by a multiagent system (MAS) to manage workers in case of unforeseen events.In the proposed MAS architecture, Agents represent the operators trying to find local assignments for themselves. The system is validated with a simulation model and implemented with a hardware infrastructure in a real assembly line of electromechanical components. The main original contribution of the paper consists in proving – by means of both validation through a simulation model and test in a real assembly line of electromechanical components – that (1) multi-agent systems could be successfully adopted to solve a workforce scheduling problem, and (2) a combined approach consisting of centralized + distributed approach would provide better results compared with the application of one of the two approaches alone. 相似文献
17.
Dynamic resource allocation heuristics that manage tradeoff between makespan and robustness 总被引:4,自引:3,他引:1
Ashish M. Mehta Jay Smith H. J. Siegel Anthony A. Maciejewski Arun Jayaseelan Bin Ye 《The Journal of supercomputing》2007,42(1):33-58
Heterogeneous parallel and distributed computing systems may operate in an environment where certain system performance features
degrade due to unpredictable circumstances. Robustness can be defined as the degree to which a system can function correctly
in the presence of parameter values different from those assumed. This work develops a model for quantifying robustness in
a dynamic heterogeneous computing environment where task execution time estimates are known to contain errors. This mathematical
expression of robustness is then applied to two different problem environments. Several heuristic solutions to both problem
variations are presented that utilize this expression of robustness to influence mapping decisions.
相似文献
Bin YeEmail: |
18.
Copying garbage collectors are now standard for the memory-management subsystems of functional and object-oriented programming languages. Compacting garbage collection has correspondingly fallen out of favor. We revitalize the case for compaction by demonstrating that a simple compacting collector, extended with the generational garbage collection heuristic, exhibits performance as effectively as or better than a well-designed generational copying collector on real programs running in real environments. The observation that compaction preserves allocation order across collections leads to a new generalization of the generational heuristic that reduces the movement of long-lived objects. We measure the effect of substituting our compacting generational collector for a copying collector in Standard ML of New Jersey. 相似文献
19.
基于地区现有应急资源布局评估,讨论了资源储备点选址与资源量配置的统一优化问题。提出了确定资源需求量的步骤,改善了原有资源布局评价方法;建立了同时应对多点需求的应急资源评估、选址与调配模型;通过约束条件线性化使该模型易于快速求解,更便于实际应用。给出的算例表明模型的合理与求解方法的有效性。 相似文献
20.
Windows下堆内存管理机制研究 总被引:5,自引:0,他引:5
堆是用来存储动态数据的内存区域。通过堆函数,可以在进程的地址空间里创建私有堆,继而可以通过系统提供的一系列函数来管理堆中的内存。首先分析了堆的基本结构。然后通过对Windows堆中内存块的分配和释放进行深入分析。详细阐述堆内存的管理机制。 相似文献