Dokumentation zu: m_allocate.de(E)

HR Image


SYNOPSIS
        mapping m_allocate(int size)
        mapping m_allocate(int size, int width)

BESCHREIBUNG
        Die Funktion reserviert Speicher fuer ein Mapping. <size> ist die
        Anzahl Eintraege (d.h. die Anzahl Keys), <width> ist die Anzahl
        Dateneintraege pro Key. Wird <width> nicht angegeben, werden Keys
        mit einem Datenelement erzeugt.

        Die Funktion ist nur sinnvoll, wenn man ein Mapping erzeugt, dessen
        ungefaehre Groesse von vornherein bekannt ist, um so den Overhead
        von wiederholten Speicherallokation zu minimieren. Wenn nicht alle
        allozierten Datenelemente mit Daten bestueckt werden, werden die
        Ueberbleibsel einige Zeit spaeter bei Gelegenheit wieder freigegeben
        (s. Bemerkungen).
        m_allocate() ist auch nuetzlich, wenn ein Mapping bestimmter Breite
        erzeugt werden soll, ohne bereits die Daten zu den Keys bereit zu
        stellen.

        Wenn bloss ein leeres Mapping bestimmter Breite erzeugt werden soll,
        so kann folgende Notation verwendet werden:

        ([ ]) : erzeugt ein leeres Mapping mit Breite 1.
        ([:<width>]) : erzeugt ein leeres Mapping der Breite <width>,
            wobei <width> eine beliebige Anweisung sein kann, die eine
            Integerzahl zurueck liefert. Tatsaechlich wird diese Notation
            als 'm_allocate(0, <width>)' kompiliert.

BEISPIELE
        m_allocate(3,7) -> erzeugt ein Mapping mit 7 Werten pro Key und Platz
           fuer 3 Eintraege.
       ([:2*3]) -> entspricht m_allocate(0,6).

BEMERKUNGEN
        Ungenutzer Speicher des allozierten Mappins wird waehrend des sog.
        Kompaktierens des Mappings freigegeben. Dies passiert waehrend eines
        "data cleanups" oder einer "garbage collection". Die Zeit zwischen
        "data cleanups" ist mit configure_driver() konfigurierbar.

GESCHICHTE
        Umbenannt von allocate_mapping() in LDMud 3.2.6.
        Die ([:<width>]) Notation wurde in 3.2.9 eingefuehrt.

SIEHE AUCH
        mappings(LPC), walk_mapping(E), get_type_info(E), m_reallocate(E)

Das Original der Seite ist in Englisch.

Start » Magierhandbuch » Docu » Efun.de » M_allocate.de Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!