AGB  ·  Datenschutz  ·  Impressum  







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

Performance: mein Programm trödelt!

Ein Thema von NicoleWagner · begonnen am 10. Jun 2020 · letzter Beitrag vom 12. Jun 2020
Antwort Antwort
Seite 1 von 2  1 2      
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#1

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 09:35
...dass das "richtig formatiert" so aussieht, wissen hier wohl viele, auch ich.
Nur war mir die Spielerei in html zu mühsam.
Dass zu sagen, ist nicht der Grund, warum ich poste.
Sondern ich poste eine Erfolgsmeldung: Ich hab's!

Es war ein "begin-end" zu wenig.
Jenes, das schlank und rank über 2 Zeilen hätte laufen sollen, ging mir in eine riesige Schleife.

Wie passiert so etwas?
Man folgt der Embacadero Richtlinie nicht, jede einzelne Zeile in begin - end einzuschließen, weil das sooo viele Codezeilen macht.
Man schreibt also:
If.... then... ;
Dann - fällt einem noch etwas ein.

Richtig wäre jetzt natürlich gewesen:

if .... then
begin
1.....;
2.....;
end;

Man schrieb aber zu später Stunde:
if then
1....;
2....;

Autsch.
Dieser 2. Befehl läuft dann durch die ganze Ober-Schleife.

Meine Anwendung startet jetzt wieder im Wimpernschlag statt in einigen Sekunden.

PS: Ich schreibe auch " s:= ' ' + #10#13 + ' '; "
Zuweilen geht das nicht und dann fand ich (glaublich sogar hier) einen Trick: Man legt ein "Label" dorthin, wo es nicht klappt und schreibt nicht auf den schlechten Untergrund, sondern aufs Label.

und PPS:
Die Zeitmessung mit "now"-Zuweisung fand die auslösende Stelle NICHT. Da mag die Code-Optimierung daran schuld sein.

Geändert von NicoleWagner (11. Jun 2020 um 09:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 10:02
Man folgt der Embacadero Richtlinie nicht, jede einzelne Zeile in begin - end einzuschließen, weil das sooo viele Codezeilen macht.
Man schreibt also:
If.... then... ;
Dann - fällt einem noch etwas ein.

Richtig wäre jetzt natürlich gewesen:

if .... then
begin
1.....;
2.....;
end;
Deswegen habe ich mir angewöhnt, das generell zu machen, damit so etwas nicht passieren kann.
Man muss nicht mal etwas vergessen, sondern es kann eine nachträgliche Ergänzung sein, die mehr erfordert.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.045 Beiträge
 
Delphi 12 Athens
 
#3

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 10:05
Sondern ich poste eine Erfolgsmeldung: Ich hab's!
Meine Anwendung startet jetzt wieder im Wimpernschlag statt in einigen Sekunden.

PS: Ich schreibe auch " s:= ' ' + #10#13 + ' '; "
Super, dass du dein Problem lösen konntest.

Hier noch ein Tipp zum #10#10: es gibt da in System.pas, was ja bekanntlichermaßen immer implizit eingebunden ist,
die schöne Konstante sLineBreak. Diese enthält unter Windows genau das: #13#10 und auf den anderen Plattformen
das jeweils dort standardmäßig benutzte. Nutzung der Konstante macht also den Code ein wenig mehr Multi-Plattform
kompatibel.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 10:50
Hier noch ein Tipp zum #10#10: es gibt da in System.pas, was ja bekanntlichermaßen immer implizit eingebunden ist,
die schöne Konstante sLineBreak.
Wirkt der Kaffee noch nicht?
https://www.delphipraxis.net/1467014-post36.html
https://www.delphipraxis.net/204596-...roedelt-3.html
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 11:02
Zitat:
Es war ein "begin-end" zu wenig.
Deswegen sollte man den Code von Anfang an richtig formatieren, dann sieht man solche Fehler sofort.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 12:12
1010 und 1013...
das ist nicht alles eins
https://delphiprogrammingdiary.blogs...in-delphi.html

Was Deinen Tipp betrifft, danke!
Leider ist er nichts für mich Spatzenhirn. Denn das einzige, das ich mir merken kann, ist, das im Zeilenumbruch eine Raute vorkommt.
Nach der suche ich dann in meinem alten Code und finde dann - endlich 1013. Denn ob das 1310 oder 1013 ist und wohin die Rauten und ob eine oder zwei
.... in einigen Monaten habe ich das stets vergessen.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Performance: mein Programm trödelt!

  Alt 11. Jun 2020, 12:14
Zitat:
Denn das einzige, das ich mir merken kann, ist, das im Zeilenumbruch eine Raute vorkommt.
Benutz einfach sLineBreak. Das benutze ich seit vielen Jahren und hatte noch nie irgendwelche Probleme damit.
Wer mit sLineBreak Probleme bekommt, macht irgendwas anderes falsch denke ich.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.811 Beiträge
 
Delphi 12 Athens
 
#8

AW: Performance: mein Programm trödelt!

  Alt 12. Jun 2020, 07:22
Der Gutste vertut sich leider schon sehr früh in seinem Artikel. Es ist nunmal so, daß #13 und #$D beide das selbe ASCII Zeichen bedeuten und sich lediglich in ihrer numerischen Repräsentation unterscheiden. Damit habe ich dann aufgehört den Artikel zu lesen, weil das ist eine Grundlage, die darf man nicht falsch hinbekommen, wenn man nicht nur von Einsteigern gelesen werden will.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#9

AW: Performance: mein Programm trödelt!

  Alt 12. Jun 2020, 13:55
Es ist nunmal so, daß #13 und #$D beide das selbe ASCII Zeichen bedeuten...
???
Und was steht da?
Zitat:
...where the difference is in their representation that #13 is decimal but #$D is hexadecimal...
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Performance: mein Programm trödelt!

  Alt 12. Jun 2020, 14:13
Es ist nunmal so, daß #13 und #$D beide das selbe ASCII Zeichen bedeuten...
???
Und was steht da?
Zitat:
...where the difference is in their representation that #13 is decimal but #$D is hexadecimal...
auch erst, nachdem der Autor das geändert hat s. Kommentare....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:43 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