![]() |
AW: Performance: mein Programm trödelt!
Die Lizenz für's kleine CodeSite Express ist immernoch mit dabei, wenn ich mich nicht täusche. (kann via GetIt installiert werden)
|
AW: Performance: mein Programm trödelt!
Zitat:
|
AW: Performance: mein Programm trödelt!
Irgendwie fehlt hier noch die einfachste Variante... das passiert doch auch auf dem Entwicklungs-PC:
Einfach starten und in den 3-4 Sekunden Wartezeit auf Pause drücken und dann schauen wo man dort gerade ist. Bei so langen Verzögerungen klappt das mit ein paar Versuchen normalerweise sehr gut. |
AW: Performance: mein Programm trödelt!
Zitat:
Und für's Logging ist seit vielen Versionen CodeSite Lite dabei. Funktioniert unter Windows ganz gut. |
AW: Performance: mein Programm trödelt!
In meinem Fall hilft das sehr wahrscheinlich nicht, das in-den-Code-springen. Ich habe mittlerweile ein paar "verdächtige" begin / end gefunden.
Heute bin ich schon zu müde, doch ich habe den Eindruck, dass ich irgendeine Schleife zu groß gezogen habe. Also statt for i:1 to 1000 do begin for j:=1 to 100 do begin end mach-was begin und-dann-noch-ein-Methodenaufruf-in-Schleife end end end?! Wäre das mach-was-end irgendwohin verrutscht beim Debuggen und es wären dann 100.000 Durchläufe mehr als nötig... Dass da oben "was" nicht stimmt, sieht jeder auf den ersten Blick. Das richtige end zu löschen, das braucht einen zweiten Blick. |
AW: Performance: mein Programm trödelt!
Zitat:
|
AW: Performance: mein Programm trödelt!
Delphi-Quellcode:
for i:1 to 1000 do begin
for j:=1 to 100 do begin end mach-was begin und-dann-noch-ein-Methodenaufruf-in-Schleife end end end?! Zitat:
Delphi-Quellcode:
Im Prinzip ist da alles falsch. Code-formatierung kann einem solche Probleme ersparen.
for i: 1 to 1000 do
begin for j := 1 to 100 do begin end // mach-was begin // und-dann-noch-ein-Methodenaufruf-in-Schleife end end end ?! Richtig vielleicht so? Ich weiß ja nicht, wp du i und j verwendest
Delphi-Quellcode:
Ab und zu STRG+D
for i := 1 to 1000 do
begin for j := 1 to 100 do begin // mach-was // und-dann-noch-ein-Methodenaufruf-in-Schleife end end; |
AW: Performance: mein Programm trödelt!
...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. |
AW: Performance: mein Programm trödelt!
Zitat:
Man muss nicht mal etwas vergessen, sondern es kann eine nachträgliche Ergänzung sein, die mehr erfordert. |
AW: Performance: mein Programm trödelt!
Zitat:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 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