AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 12:17

Parameter dieser Suchanfrage:

Suche in Thema: Effizienz des Speichermanagers
Suche alle Beiträge, die von "Namenloser" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 14 von insges. 14 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 17. Apr 2014
    Das Suchen ist wohl auch eher nicht das Problem. Aber das Einfügen und Löschen eines Elements ist beim Array O(n), weil die Elemente im Speicher umkopiert werden müssen.
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 17. Apr 2014
    Eine Speicherseite (4096 Bytes) erscheint mir recht viel. Bei der Größe würde es mich doch wundern, wenn ein Baum nicht schneller wäre. Ich kann mir vorstellen, dass Arrays bis ~100 oder vielleicht 200 Elemente (sagen wir mal Ints) überlegen sind.
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 16. Apr 2014
    Ich hatte deswegen auch erst überlegt, einfach ein Array zu nehmen. Aber dann kam der Perfektionist in mir wieder durch und dachte sich, es wäre doch schön, wenn trotzdem garantiert wäre, dass die asymptotische Laufzeit nicht aus dem Ruder läuft. Hab mir dann erst überlegt, ob man das Array vielleicht irgendwie erweitern könnte, aber habe dann nach einer Weile gemerkt, dass ich eigentlich gerade...
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 15. Apr 2014
    So, ich habe jetzt noch mal einen saubereren Test in einem neuen Projekt geschrieben.
    B+ Tree

    Ascending linear (1000000)
    Insert: 451 ms
    Locate: 273 ms
    Remove: 543 ms

    Descending linear (1000000)
    Insert: 661 ms
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 15. Apr 2014
    Naja, nur dafür hätte ich es wohl auch nicht gemacht. Eine sortierte Liste braucht man z.B. hierfür. Ein Binomialheap ist da auch schon im Einsatz, reicht aber nur für eine der beiden Datenstrukturen.

    Ich hatte erst mal nur Sorted-Inserts getestet, weil es eigentlich spannender ist. Für wirklich zufällige Inserts bräuchte man theoretisch gar keinen balancierten Baum.

    Für einen umfangreichen...
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 14. Apr 2014
    Der Testcode ist ziemlich hässlich und mit heißer Nadel gestrickt, aber gut:
    const
    c = 500000;
    begin
    Tree := TABTree.Create;

    t0 := GetTickCount64();
    for i := 1 to c do
    Tree.Insert(i,i);
    for i := 2*c downto c+1 do
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 14. Apr 2014
    Der scheint wirklich ziemlich schnell zu sein, zumindest wenn er erst mal einen Pool an TreeNodes angelegt hat, die er dann recyclen kann:
    B+ 1000000 Inserts: 447
    B+ 1000000 Locates: 280
    B+ 500000 Removes: 201
    B+ 500000 Reinserts: 241

    SL 1000000 Inserts: 713
    SL 1000000 Locates: 212
    SL 500000 Removes: 324
    SL 500000 Reinserts: 347
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 13. Apr 2014
    Ich hab mir jetzt selber auch noch mal den Spaß gemacht und drei verschiedene Varianten gegeneinander getestet:
    1. Rot-Schwarz-Baum aus der FCL-STL
    2. alzaimars Skiplist (habe die maximale Tiefe allerdings von 8 auf 20 erhöht)
    3. mein eigener B+-Baum

    Ergebnis eines Testlaufs (alle Zeiten in ms):

    B+-Baum:
    B+ 1000000 Inserts: 472
    B+ 1000000 Locates: 303
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 13. Apr 2014
    Die Zahlen stammen so 1:1 aus dem Systemmonitor.


    Ich meinte eigentlich die Speicherverwaltung. Denn das kann man ja sicher mal wieder gebrauchen. Den Baum werde ich aber möglicherweise auch als Open Source veröffentlichen.

    B+-Bäume machen auch im Arbeitsspeicher Sinn, weil sie deutlich cachefreundlicher sind als etwa Rot-Schwarz-Bäume. Falls dich Zahlen interessieren, unser Übungsleiter...
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 12. Apr 2014
    Ich habe das mit der eigenen Speicherverwaltung jetzt so weit umgesetzt. Komme jetzt mit dem FPC-Speichermanager in Kombination mit meiner eigenen Speicherverwaltung auf ca 98 MB, also geringfügig mehr als mit dem C-Speichermanager. Geschwindigkeitsmäßig kann die Implementierung ebenfalls mithalten. Und es wird sogar der Speicher am Ende vollständig wieder freigegeben. :)

    Wäre vielleicht auch...
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 12. Apr 2014
    Also hier unter Linux gibt der FPC-Speichermanager auch den Speicher zurück. Der C-Manager hingegen behält ihn. Finde ich aber nicht so toll, ich finde, der Speicher sollte schon zurückgegeben werden, es laufen schließlich noch andere Programme auf dem Rechner.
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 12. Apr 2014
    var
    i: integer;
    begin
    // 7 MB
    for i := 0 to 1000000 - 1 do
    New(recs);
    // 77 MB
    for i := 1000000 to 2000000 - 1 do
    New(recs);
    // 144 MB
  • Forum: FreePascal

    AW: Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 12. Apr 2014
    Ich verwende für die Navigationsknoten Records und darin sind die Schlüssel und die Kinder in Arrays mit fester Größe gespeichert. Bei mir haben sich Knotengrade von 16 bis 32 als am schnellsten erwiesen. Wie ich schon schrieb, arbeitet mein Baum nur im RAM, Paging auf die Festplatte usw. ist nicht im Spiel.


    Auch ich habe im Eingangspost ein bisschen vereinfacht. Was ich da habe, ist nicht...
  • Forum: FreePascal

    Effizienz des Speichermanagers

      FreePascal
      by Namenloser, 11. Apr 2014
    Hi,

    ich arbeite an einer Implementierung von B+-Bäumen (oder sowas ähnlichem zumindest), in-memory. Ich habe da gestern mal mit Benchmarks angefangen, und während die Geschwindigkeit zwar in Ordnung war, ist mir aufgefallen, dass das Programm viel mehr RAM braucht als es eigentlich sollte. Theoretisch sollte es ungefähr 80MB brauchen, tatsächlich waren es hingegen über 230MB.

    Ein...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Namenloser&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=179936
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz