AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Performance VS Codestruktur/Codevereinfachung
Thema durchsuchen
Ansicht
Themen-Optionen

Performance VS Codestruktur/Codevereinfachung

Ein Thema von NickelM · begonnen am 15. Dez 2015 · letzter Beitrag vom 20. Dez 2015
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 15. Dez 2015, 21:56
Ja, ich weiß ... CASE mit String und Pascal ... nja, was soll's.

Delphi-Quellcode:
case IndexText(TestArray[I], ['5', '50', '9']) of
  0: Found1 := 5;
  1: Found2 := 50;
  2: Found3 := 9;
  else Continue;
end;
Oder besser gleich ein TDictionary<>, statt dem Case.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 16. Dez 2015, 10:31
Erst mal immer die Variante nehmen, die besser wartbar ist. Stellt sich diese in der Praxis als zu langsam raus, dann erst optimieren. Das hat folgenden Vorteil: Ist es gar nicht zu langsam, kann man Änderungen viel einfacher einbauen. Schnelleres Coding, weniger Fehler --> alle glücklich. Habe ich vorher eine ultra-schneller, aber auch ultra-komplexe Lösung gebaut, dann wird jede Änderung zur Qual. Langsameres Coding, mehr Fehler --> keiner glücklich.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 17. Dez 2015, 09:51
Macht es eigentlich überhaupt heutzutage noch sinn oder solche Code-Strukturen nachzudenken, oder denke ich da nur zu Performance orientiert?
Man sollte wissen welchen Code der Compiler aus den diversen Anweisung erzeugt.
Dann kann man abwägen, ob a besser ist als b.

Beispiel : For in Schleife.

Wenn ich die Werte ändern möchte, fällt Beispielsweise die "For in" Schleife schon mal weg, weil die werte Readonly sind (bzw. Kopien) sind.

Kann man einfach drauf los programmieren, weil die Rechner heute schnell genug sind? NEIN!

Aber wenn die Optimierung für 5ms 2 Tage dauert... Finger weg - es sei den die Routine soll 200x pro Sekunden aufgerufen werden...

Wenn es läuft sind mir weniger Zeilen Source-Code immer lieber... Also versuche ich so wenig wie möglich neu zu programmieren, sondern eher auf eine vorhandene Routine zurück zu greifen.

Klar wird meine Intervalschachtelung auf ein sortiertes Array schneller sein als erst ein Dictionary zu befüllen... Aber wie schnell schleicht sich ein Fehler ein (Klassiker sind die so genannten succ/pred Probleme der Grenzen).

Mavarik
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#14

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 17. Dez 2015, 12:51
Erst den Scope definieren, dann den dafür geeigneten Algorithmus auswählen und dann, wenn es klemmt, optimieren.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#15

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 20. Dez 2015, 10:12

Jetzt zu den Fragen :
Macht es sinn einen Code in der 1. Variante eher zuschreiben als in der 2. ?
Macht es eigentlich überhaupt heutzutage noch sinn oder solche Code-Strukturen nachzudenken, oder denke ich da nur zu Performance orientiert?
Würde euch noch eine Variante vielleicht einfallen, die ich jetzt nicht bedacht habe, die beides vereint?
Was wäre euch als Programmierer, der an einem Projekt mitarbeitet, wichtiger?

Gruß NickelM
Ich denke schon, dass es auch heutzutage noch Sinn macht.


Wenn Du irgendwann zu einem definierten Übergabepunkt und einem übersichtlichen Interface kommst und Deine gewünschte Aufgabe einzig und allein in einem abgeschlossenem CodeBereich existiert, dann ist doch alles gut.
Schlimm wäre es nur, wenn es in sogenannten Spagetticode endet, die Variablen überall kreuz und quer über weite Codebereiche verwendet werden .

Allerdings solltest Du die Möglichkeit von Multithread-Lösungen ebenso nicht außer Acht lassen.
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#16

AW: Performance VS Codestruktur/Codevereinfachung

  Alt 20. Dez 2015, 17:28
Na ja, es ist wie immer: Es hängt ab. Solange Du im Hobbykeller etwas für Dich zusammenbaust, ist es egal. Du bist derjenige, der mit den Konsequenzen leben muß. Anders ist das im professionellen Umfeld. Dort werden Programme 20, 30, 40 Jahre lang genutzt und unterliegen demgemäß dauernden Änderungen, die dann aber meist nicht mehr der vornehmen muß, der das Original verbrochen hat. Hier gilt der Spruch: The proof of the program is not in its writing, it is in its reading. Von daher kann ich nur dazu raten, den Code so verständlich wie möglich zu halten. Wobei man sich darüber im Klaren sein muß, was das "verständlich" hier bedeutet. Und noch was: Effizienz hängt in erster Linie von der Wahl des Algorithmus ab. Eine noch so raffinierte Implementierung eines Algorithmus mit Zeitkomplexität O(n²) wird einem der Komplexität O(n log n) kaum das Wasser reichen können. Auch die Daten, mit denen das Programm beaufschlagt wird, müssen in die Rechnung eingehen. Bei bis zu 10 Elementen ist ein lineares Feld sicher das effizienteste Mittel der Wahl, der Verwaltungsaufwand ist hier am geringsten. Ein geordnetes Feld mit binärer Suche wäre dagegen geeigneter bei größeren Mengen, die ziemlich konstant sind usw. usw.
Die Quintessenz ist: Problembeschreibung -> Algorithmenwahl -> Lesbare Umsetzung. Und dann optimieren, wenn es klemmen sollte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:17 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