AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem in Pascal!

Ein Thema von Sofa5000 · begonnen am 2. Feb 2004 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#1

Re: Problem in Pascal!

  Alt 3. Feb 2004, 08:06
Hallo Neg,

so elegant der Weg mit dem Mengen-Konstrukt auch scheint, so wenig lässt sich in der von Delphi vorgenommenen Implementierung die Deklaration
Delphi-Quellcode:
var
  SchonVerwendet: Set of integer;
compilieren.

Hintergrund: Bei einem Set wird für jedes mögliche Element genau ein Bit gehalten, so dass bei einem set of Byte insgesamt 256 Bits abgelegt werden müssen. Im gegensatz zu ausgerichteten Feldern wir einem Array oder einem Record setzt der Delphi-Compilier die Struktur jedoch gepackt um, so dass für jeweils 8 Bits genau ein Byte verwendet werden kann, die Gesamtstrukur belegt daher für n mögliche Elemente den Speicherplatz
Code:
s = (n+7) div 8
(das +7, um gauß'sche Klammern zu sparen) oder in mit dem Exponenten q zur Basis 2 ausgedrückt mit
Code:
q = ln2(n)
gilt daher
Code:
s=2^(ln2(n)-3)
Das bedeutete für den Speicherverbrauch s eines set of Integer mit q=32 folglich
Code:
s = 2^29 = 536870912
was also in dem Platzverbrauch von 512MB auf dem Stack entspräche...
gruß, choose
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz