首页> 外文OA文献 >Region-based memory management for Mercury programs
【2h】

Region-based memory management for Mercury programs

机译:Mercury程序的基于区域的内存管理

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Region-based memory management (RBMM)is a form of compile-time memory management,well-known from the functional programming world.In this paper we describe our work on implementing RBMMfor the logic programming language Mercury.One interesting point about Mercury is that it is designed withstrong type, mode, and determinism systems.These systems not only provideMercury programmers with several direct software engineering benefits,such as self-documenting code and clear program logic,but also give language implementorsa lot of information that is useful for program analyses.In this work, we make use of this information to develop program analysesthat determine the distribution of data into regionsand transform Mercury programs by inserting into themthe necessary region operations.We prove the correctness of our program analyses and transformation.To execute the annotated programs, we have implemented runtime supportthat tackles the two main challenges posed by backtracking.First, backtracking can require regionsremoved during forward execution to be ``resurrected'';and second,any memory allocated during a computation that has been backtracked overmust be recovered promptly and without waitingfor the regions involved to come to the end of their life.We describe in detail our solution of both these problems.We study in detail how our RBMM system performson a selection of benchmark programs,including some well-known difficult cases for RBMM.Even with these difficult cases, our RBMM-enabled Mercury systemobtains clearly faster runtimes for 15 out of 18 benchmarkscompared to the base Mercury system with its Boehm runtime garbage collector,with an average runtime speedup of 24%,and an average reduction in memory requirements of 95%.In fact, our system achieves optimal memory consumption in some programs.
机译:基于区域的内存管理(RBMM)是一种编译时内存管理的形式,在功能编程领域中广为人知。本文描述了我们为逻辑编程语言Mercury实现RBMM的工作。关于Mercury的一个有趣的观点是:它使用强大的类型,模式和确定性系统进行设计。这些系统不仅为Merury程序员提供了一些直接的软件工程优势,例如自文档代码和清晰的程序逻辑,而且还为语言实现者提供了许多对程序分析有用的信息。在这项工作中,我们利用这些信息来开发程序分析,以确定数据在区域中的分布并通过将必要的区域操作插入其中来对Mercury程序进行转换。我们证明了程序分析和转换的正确性。要执行带注释的程序,我们已经实施了运行时支持,以解决回溯带来的两个主要挑战。 ackack可能要求在前执行过程中删除的区域被``恢复'';其次,必须迅速恢复在计算过程中分配的任何已回溯的内存,而不必等待所涉及的区域的寿命结束。我们详细研究了这两个问题的解决方案。我们详细研究了RBMM系统如何在一系列基准测试程序上执行,包括一些著名的RBMM困难案例。即使在这些困难案例中,我们支持RBMM的Mercury系统也能以更快的速度运行15与带有Boehm运行时垃圾收集器的基本Mercury系统相比,它具有18个基准,平均运行时速度提高了24%,平均内存需求减少了95%。实际上,我们的系统在某些程序中实现了最佳的内存消耗。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号