1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Copied from Perforce
 Change: 180494
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Gareth Rees 2012-11-16 15:38:40 +00:00
parent 4fd1d5ad0d
commit 45b41e1bf4
12 changed files with 29 additions and 1280 deletions

View file

@ -201,7 +201,7 @@ Memory Management Glossary: D
.. opposite:: :term:`indirect method`.
.. bibref:: :ref:`Jones (1996) <JONES96>`.
.. bibref:: :ref:`Jones et al. (2012) <JONES12>`.
dirty bit

View file

@ -217,7 +217,7 @@ Memory Management Glossary: I
.. opposite:: :term:`direct method`.
.. bibref:: :ref:`Jones (1996) <JONES96>`.
.. bibref:: :ref:`Jones et al. (2012) <JONES12>`.
infant mortality

View file

@ -114,7 +114,7 @@ Memory Management Glossary: O
the reference was suggested by :ref:`Stoye, Clarke, and
Norman (1984) <SCN84>`.
.. bibref:: :ref:`Jones (1996) <JONES96>`.
.. bibref:: :ref:`Jones et al. (2012) <JONES12>`.
opaque type

View file

@ -418,7 +418,7 @@ Memory Management Glossary: R
.. similar:: :term:`entry table (2)`.
.. bibref:: :ref:`Ungar (1984) <UNGAR84>`, :ref:`Jones (1996) <JONES96>`.
.. bibref:: :ref:`Ungar (1984) <UNGAR84>`, :ref:`Jones et al. (2012) <JONES12>`.
remote reference

View file

@ -35,6 +35,5 @@ Appendices
glossary/index
copyright
contact
todo
* :ref:`genindex`

View file

@ -78,7 +78,7 @@ Application memory management combines two related tasks:
recycled for reuse. There are two approaches to recycling memory:
either the programmer must decide when memory can be reused (known
as :term:`manual memory management`); or the memory manager must
be able to work it out (known as :term`automatic memory
be able to work it out (known as :term:`automatic memory
management`). These are both described in more detail below.
An application memory manager must usually work to several
@ -89,9 +89,14 @@ constraints, such as:
The additional time taken by the memory manager while the program
is running.
**Interactive pause times**
**Pause times**
How much delay an interactive user observes.
The time it takes for the memory manager to complete an operation
and return control to the program.
This affects the program's ability to respond promptly to
interactive events, and also to any asynchronous event such as a
network connection.
**Memory overhead**
@ -273,5 +278,5 @@ are available on many specific techniques, and can be found via our
:ref:`bibliography`; particularly recommended are: :ref:`Wilson (1994)
<WIL94>`, which is survey of garbage collection techniques;
:ref:`Wilson et al. (1995) <WIL95>`, which is a survey of allocation
techniques; and :ref:`Jones (1996) <JONES96>`, which is the first book
in English dedicated to garbage collection.
techniques; and :ref:`Jones et al. (2012) <JONES12>`, which is a
handbook covering all aspects of garbage collection.

View file

@ -14,12 +14,16 @@ Adaptive Memory Management Group at `Harlequin Limited
* Nick Barnes
* Richard Brooksby
* David Jones
* David Lovemore
* Tony Mann
* Gavin Matthews
* Pekka P. Pirinen
* Richard Tucker
* P. T. Withington
Gavin Matthews was the original editor of the Memory Management
Reference.
The Adaptive Memory Management Group no longer exists, and Harlequin
has become a part of `Global Graphics
<http://www.globalgraphics.com/>`_. However, most of the group's work
@ -27,11 +31,8 @@ has been aquired by `Ravenbrook Limited`, whose directors are Richard
Brooksby, the group's chief architect and manager, and Nick Barnes, a
senior group member.
The award-winning web presentation was designed by its first editor,
Gavin Matthews.
Particular thanks go to Richard Jones for his enormously useful book
:ref:`The Garbage Collection Handbook <JONES96>`, and for his comments
:ref:`The Garbage Collection Handbook <JONES12>`, and for his comments
on the Reference.
Many people have :ref:`made valuable suggestions <contact>` for the

View file

@ -207,10 +207,10 @@ Common objections to garbage collection
What languages use garbage collection?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:term:`Java`, :term:`Lisp`, :term:`Smalltalk`, :term:`Prolog`,
:term:`ML`, … the list goes on. It surprises many to learn that many
implementations of :term:`BASIC` use :term:`garbage collection` to
manage character strings efficiently.
:term:`Java`, :term:`C#`, :term:`Python`, :term:`Lisp`, :term:`ML`, …
the list goes on. It surprises many to learn that many implementations
of :term:`BASIC` use :term:`garbage collection` to manage character
strings efficiently.
:term:`C++` is sometimes characterized as the last holdout against
garbage collection, but this is not accurate. See
@ -404,7 +404,7 @@ BoehmWeiser collector.
.. seealso:: :term:`garbage collection`
.. bibref:: :ref:`Jones (1996) <JONES96>`, :ref:`Wilson (1994) <WIL94>`.
.. bibref:: :ref:`Jones et al. (2012) <JONES12>`, :ref:`Wilson (1994) <WIL94>`.
.. link::
@ -557,21 +557,3 @@ store data, there are three problems typically experienced with it:
that poor :term:`locality of reference` can result in heavy paging.
.. seealso:: :term:`thrash`.
Why do I need to reset my X server every week?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some X servers are notorious for leaking memory. This is probably
because the sheer complexity of the X library interface, together with
those for toolkits such as Motif, makes :term:`manual memory
management` a nightmare for the programmer.
There have been reports of successful use of the BoehmWeiser
collector with X servers.
.. seealso:: :term:`memory leak`
.. link::
`BoehmWeiser collector <http://www.hpl.hp.com/personal/Hans_Boehm/gc/>`_.

View file

@ -1,107 +0,0 @@
.. _mmref-history:
A brief history of memory management
====================================
==== ==================================================================
Year Milestone
==== ==================================================================
1801 First :term:`memory (1)` device invented by Joseph-Marie Jaquard,
in the form of perforated cards for a programmable loom.
1833 Charles Babbage designs his Analytical Engine, a steam-powered,
general-purpose, mechanical computer with brass gears as internal
memory and punched cards for input. The design is never
constructed.
1884 Herman Hollerith applies for a patent for his punched-card
machines.
1938 Konrad Zuse constructs an electromechanical computer in Germany.
1943 Colossus, a vacuum-tube device for breaking codes at Bletchley
Park in Britain, becomes the first all-electronic calculating
device. It uses paper tape for input with optical readers.
1947 Magnetic drums are introduced.
1949 EDSAC started up at Cambridge University in Britain. This is the
first Von Neumann or "stored-program" machine, where the
instructions are stored in the same type of memory as data.
1949 First tests of magnetic disks.
1952 RCA Bizmac produced with iron-:term:`core` memory and a magnetic
drum.
1953 The first magnetic tape drive produced.
1953 IBM 650 produced, the first mass-produced drum-memory machine.
1957 First :term:`Fortran` compiler delivered, with :term:`static
allocation` only.
1957 Disk memory produced, for the IBM305 RAMAC.
1958 :term:`Heap allocation`, :term:`garbage collection` and
:term:`Lisp` invented by John McCarthy :ref:`(McCarthy 1960)
<MCCARTHY60>`.
1958 :term:`Algol`, the first block-structured language, appears,
providing :term:`stack allocation`.
1961 Compatible Time-Sharing System (CTSS) available, the first system
with :term:`paging`.
1962 Atlas available, the first computer with :term:`virtual memory`.
1965 Maurice Wilkes and Gordon Scarott propose the use of :term:`cache
memory`.
1967 :term:`Simula` becomes the first object-oriented language.
1969 Intel announce a 1 kilobit :term:`RAM` chip.
1970 Intel produce the 1103, the first generally available
:term:`DRAM <dynamic memory>`.
1970 :term:`Prolog` invented by Alain Colmerauer.
1971 IBM produce the 8-inch floppy disk.
1971 Intel produce the 1701 erasable :term:`ROM`.
1971 Intel 4004 produced, the first commercially available
microprocessor.
1972 :term:`C` designed by Dennis Ritchie. 5¼-inch floppy disks appear.
1974 Intel produce the 8080 microprocessor, which can access 64 kB of
memory.
1975 :term:`Tri-color marking` invented by :ref:`Edsger W. Dijkstra at
al. <DLMSS76>`, the first :term:`incremental garbage collection`
algorithm. .
1979 First digital video disks from Sony and Philips.
1980 Winchester hard drive produced by Alan Shugart, the first large
storage device for PCs.
1981 IBM decides that no PC user will ever need more than 640 kB of
memory.
1983 :term:`Generational garbage collection` developed by
:ref:`Lieberman and Hewitt <LH83>`.
1984 :term:`Generational garbage collection` used for :term:`Smalltalk`
by :ref:`Dave Ungar <UNGAR84>`.
1991 :term:`Scheme` standardized; first garbage-collected language with
an international standard.
1995 :term:`Java` announced by a team of Sun engineers led by James
Gosling.
2002 New :term:`COBOL` standard includes garbage collection.
==== ==================================================================

View file

@ -8,7 +8,6 @@ Introduction to memory management
begin
alloc
recycle
history
lang
faq

File diff suppressed because it is too large Load diff

View file

@ -199,9 +199,6 @@ Library module
Return the time since some epoch, in units given by
:c:func:`mps_clocks_per_sec`.
This should be a cheap, high-resolution processor timer. There is
no requirement to be able to relate this time to wall clock time.
.. note::
The ANSI Library module, ``mpsliban.c``, calls ``clock``.
@ -398,6 +395,11 @@ Library module
In the ANSI Library module, ``mpsliban.c``, this is a simple
wrapper around ``memset``.
.. note::
The MPS does not use this at present, but it may be required
in future.
.. c:function:: unsigned long mps_lib_telemetry_control()