Announcement

Collapse
No announcement yet.

Speicherbelegung / Speicherreservierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherbelegung / Speicherreservierung

    Ich habe mir bei der Optimierung eines erstellten Programmes gedanken gemacht, wieviel Speicher die einzelnen Datentypen so benoetigen (leer und mit zugewiesenen Werten). <br>Beispiel: 3 Strings besser einzeln oder in einer Stringlist verwalten u.s.w.<br><br>
    Gibt es irgenwo Informationen dazu?<br><br>THX

  • #2
    Für Performance-Optimierungen empfehle ich dir <a href="http://www.automatedqa.com/products/aqnet.asp">AQTime</a>. Meißt sind die Performancebremsen an stellen, die man eigentlich nicht erwartet.

    Und ob nur ein Stringlist oder eine String ein paar Byte weniger Byte benötigt ist i.d.R. irrelevant.

    Ein (langer) String = 4 Byte Referenzzähler, 4 Byte Längenangabe und Anzahl Bytes + 1 (/0) entsprechend Länge.
    In einer Stringlist kommt noch der Verwaltungsoverhead für die Stringlist hinzu.

    Zusatzinfos <a href="http://www.delphi-source.de/grundlagen/interna/ansistrings.php">Delphi und Ansi-Strings</a&gt

    Comment


    • #3
      Dazu nun die naechste Sache. Lt. Delphi-Hilfe belegt ein Single Datentyp nur die haelfte an speicer wie ein double (sagt ja auch schon der Name). Nun rechne ich in einer division einen Wert durch 10 und uebergebe das an den Single Datentyp. Da komme ich auf X Nachkommastellen, die sich auch durch RoundTo nicht runden lassen.<br><br>Beispiel: <pre>
      89 / 10 = 8.89999961853027
      </pre>
      Bei double ist alles OK. Ich nehme nun auch double. Wenn aber jemand Lust und Zeit zum antworten haben sollte --> THX

      Comment


      • #4
        Das ist ein Fließkommaspezifisches Problem. Durch Änderung des Datentyps verlagerst Du das Problem nur. In jedem Fließkommadatentyp gibt es Werte die sich nicht darstellen lassen. Es gibt hier irgendwo dazu eine Diskussion, bei der die Hintergründe dargelegt werden.

        Grüße Joche

        Comment

        Working...
        X