mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-26 08:41:47 -07:00
Actions from rb's e-mail <https://info.ravenbrook.com/mail/2012/11/16/14-31-52/0/>.
Copied from Perforce Change: 180494 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
4fd1d5ad0d
commit
45b41e1bf4
12 changed files with 29 additions and 1280 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,5 @@ Appendices
|
|||
glossary/index
|
||||
copyright
|
||||
contact
|
||||
todo
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 @@ Boehm–Weiser 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 Boehm–Weiser
|
||||
collector with X servers.
|
||||
|
||||
.. seealso:: :term:`memory leak`
|
||||
|
||||
.. link::
|
||||
|
||||
`Boehm–Weiser collector <http://www.hpl.hp.com/personal/Hans_Boehm/gc/>`_.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
==== ==================================================================
|
||||
|
|
@ -8,7 +8,6 @@ Introduction to memory management
|
|||
begin
|
||||
alloc
|
||||
recycle
|
||||
history
|
||||
lang
|
||||
faq
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue