AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Geschwindigkeit einer Rekursion unter D2010 erhöhen
Thema durchsuchen
Ansicht
Themen-Optionen

Geschwindigkeit einer Rekursion unter D2010 erhöhen

Offene Frage von "kaju74"
Ein Thema von kaju74 · begonnen am 10. Mär 2010 · letzter Beitrag vom 10. Mär 2010
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.573 Beiträge
 
Delphi 12 Athens
 
#6

Re: Geschwindigkeit einer Rekursion unter D2010 erhöhen

  Alt 10. Mär 2010, 11:27
vesuch mal Dieses
Delphi-Quellcode:
function TXmlDocument.Content: string;
var
  SL: TStringList;

  procedure Expand(const Indent: string; Elements: TXmlElements);
  var
    i: Integer;
    S: String;
  begin
    for i := 0 to Elements.Count - 1 do
      if Elements[i].Elements.Count > 0 then begin
        SL.Add(Indent + '<' + Elements[i].Name + '>');
        Expand(Indent + ' ', Elements[i].Elements);
        SL.Add(Indent + '</' + Elements[i].Name + '>');
      end else begin
        S := Trim(Elements[i].Content);
        if S <> 'then
          SL.Add(Indent + '<' + Elements[i].Name + '>' + S + '</' + Elements[i].Name + '>')
        else
          SL.Add(Indent + '<' + Elements[i].Name + '/>');
      end
  end;

begin
  SL := TStringList.Create;
  try
    SL.Add('<?xml version="1.0" encoding="utf-8" ?>');
    Expand('', Elements);
    Result := SL.Text;
  finally
    SL.Free;
  end;
end;
Beim Original war nicht nur die große Laufzeit das Schlimme.
Schlecht war auch die Art der Parameter/Speicherverwaltung.
So wurde bei mehrfach verschalteten Nodes ein Vielfaches des Speichers belegt, welches auch noch mit zunehmender Anzahl der ChildNodes anwuchs, da der String über Str mehrfach verwaltet wurde. (welches samso auch schon gut beseitigt hat)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 04:54 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