AGB  ·  Datenschutz  ·  Impressum  







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

Speicherverbrauch bei langer if...then-Liste

Ein Thema von Sel2012 · begonnen am 9. Aug 2015 · letzter Beitrag vom 9. Aug 2015
Thema geschlossen
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#1

AW: Speicherverbrauch bei langer if...then-Liste

  Alt 9. Aug 2015, 08:05
Moin...

Als erstes schreibst du uns bitte mal deine Delphi Version. Da können wir genauer helfen.

Das Problem hat imho nichts mit der if then Orgie zu tun. Durch die vielen Zeilen, und der damit verbundenen Unübersichtlichkeit, können sich andere Fehler einschleichen.

Tipp / eine Möglichkeit:
Die Daten z.B. Bär = Baer extern in einer INI oder Textdatei vorhalten. Diese in das Programm einlesen und in einer Liste oder Dictionary verwalten. Das erspart bei Ergänzungen das Ändern des Programmes...
 
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Speicherverbrauch bei langer if...then-Liste

  Alt 9. Aug 2015, 09:32
Moin...

Als erstes schreibst du uns bitte mal deine Delphi Version. Da können wir genauer helfen.

Das Problem hat imho nichts mit der if then Orgie zu tun. Durch die vielen Zeilen, und der damit verbundenen Unübersichtlichkeit, können sich andere Fehler einschleichen.

Tipp / eine Möglichkeit:
Die Daten z.B. Bär = Baer extern in einer INI oder Textdatei vorhalten. Diese in das Programm einlesen und in einer Liste oder Dictionary verwalten. Das erspart bei Ergänzungen das Ändern des Programmes...
Ich arbeite mit XE5. Bei allen dummen Fehlern, die mir schon unterlaufen sind, kann ich hier ganz unbescheiden behaupten, dass die 100 Zeilen lange Wiederholung der immer gleichen if...then-Zeilen ausgesprochen übersichtlich ist. Die falsche Zuordnung tritt ja auch nicht regelmäßig und reproduzierbar auf, sondern mehr zufällig. Bei 3 Durchläufen passiert nix falsches, dann mal hier, mal da eine falsche (die vorherige) Zuordnung. Beim nächsten Durchlauf ist wieder alles ok. Gerade diese Unregelmäßigkeit lässt mich vermuten, dass prinzipiell kein Programmierfehler vorliegt (sonst würde sich ja ein Fehler reproduzierbar einfressen), sondern dass sich ein Speicherproblem auswirkt.
Ich kann nicht generell "Bär" zu "Baer" machen, da als Text im Label "Bär" angezeigt werden soll.
 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#3

AW: Speicherverbrauch bei langer if...then-Liste

  Alt 9. Aug 2015, 09:48

Zitat:
...kann ich hier ganz unbescheiden behaupten, dass die 100 Zeilen lange Wiederholung der immer gleichen if...then-Zeilen ausgesprochen übersichtlich ist.
...dem widerspreche ich mal spontan. Es liegt im Auge des Betrachters. Unbestritten ist aber das der Code bescheiden wartbar ist.
Zitat:
Ich kann nicht generell "Bär" zu "Baer" machen, da als Text im Label "Bär" angezeigt werden soll.
Sollst du ja auch nicht. Du greifst dann nur auf das Dictionary zu wenn du das Äquivalent benötigst.
Zitat:
...dass prinzipiell kein Programmierfehler vorliegt (sonst würde sich ja ein Fehler reproduzierbar einfressen), sondern dass sich ein Speicherproblem auswirkt.
Setze doch mal an alle 100 - 2000 Zuweisungen einen Breakpoint. Da kannst du dann sehen wann und warum welcher Wert zugewiesen wird.

Hänge das fehlerhafte Projekt mal komplett an.
 
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#4

AW: Speicherverbrauch bei langer if...then-Liste

  Alt 9. Aug 2015, 12:11
Dass eine Kette von if-then Zuweisungen nicht funktionieren, wenn es "zu viele" werden, das wäre in der 20jährigen Geschichte von Delphi ein Unikum, das man wohl ausschliessen kann.
Da läuft mit Sicherheit etwas anderes schief, und bei endlosen Codeschlangen ist das auch nicht zu verwundern. Ohne das ganze Projekt zu sehen, werden wir wohl nicht viel helfen können.

Unabhängig davon, dass es sicher funktioniert, deuten aber soclche Unmengen von Abfragen auf krasse Designfehler hin. Hinweise auf TDictionary und TStringList sind schon gefallen, du solltest das Programm unbedingt in so einer Richtung umbauen.
 
Thema geschlossen


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 08:31 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 by Thomas Breitkreuz