Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

AW: Optimierungsproblem (Tabellen mit Baumstruktur)

  Alt 15. Apr 2016, 11:29
Ich muss auch mal ein paar doofe Fragen stellen. Bei "Tabellen" bin ich natürlich "hellhörig" geworden, nun geht es gar nicht um SQL
Mein Fehler. Hätte von Anfang an besser den Begriff Array statt Tabelle verwendet (denkt man natürlich in dem Moment nicht dran, dass andere Leute Tabelle mit Datenbanken assoziieren werden).

Ich hab Schwierigkeiten mit dem Begriff Kapazität. Und warum will man sie veringern?
Da die Struktur am Ende ziemlich groß ist, versuche ich die Datengröße zu verringern.

In einem Baum würde ich versuchen mit möglichst wenig Knoten, möglichst viele Elemente zu verwalten. Das geht für mich nicht übernander mit den Kapazitäten.
Da hast du Recht, allerdings gibt es in meinem speziellen Fall leider einige leere Knoten, die ich nicht ganz vermeiden kann. Ich kann höchstens deren Anzahl optimieren und das ist genau das, was ich letztendlich versuche.

Wodurch ist die "Kapazität" von B - E definiert? Sind das die Werte der Attribute?
Die Werte der Attribute geben den Index im Array wieder. D ist z.b. ein Enum mit 5 Elementen, demnach ist die Kapazität des entsprechenden Filters auch 5.

Ist die tatsächliche Anzahl der Objekte hinter der Kombination von A-E nicht relevant?
Bin ich mir nicht ganz sicher, aber wenn ich wirklich jeden einzelnen Ast rekursiv optimiere, sollte das keine Rolle spielen.

Ein Optimierungsansatz scheint mir trotz meines Unverständnis darin zu liegen, für B-E Metaattribute zu definieren, die entsprechend einer tatsächlichen Häufung oder Nichtexistenz von Kombinationen (oder auch der Objektmenge dahinter) eine "kompaktere" Abbildung (Filterung) erlauben. Die Metaattribute müssen dann natürlich am Ende wieder rückgeführt werden (der Zusatzaufwand für Meta und Zurück) muss natürlich geringer sein, als der Status Quo.
Bin mir nicht sicher, ob ich das komplett verstanden habe. Kannst du mir da eventuell ein Beispiel geben?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat