AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Achtung. Optimierung beim Compiler

Ein Thema von DelTurbo · begonnen am 8. Jun 2010 · letzter Beitrag vom 11. Jun 2010
Antwort Antwort
Seite 2 von 2     12
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.778 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Achtung. Optimierung beim Compiler

  Alt 10. Jun 2010, 21:14
Beispiel:
Ich habe ein InUse = Array[0..100] of Boolean. Das wird von mehreren Threads genutzt. Und auch wieder frei gegeben. Mein Sourcecode war wie folgt.

Delphi-Quellcode:
for i:=0 to 100 do
begin
  if NOT InUse[i] then ....
end;
Ziel war es von "unten" einen leeren Slot zu suchen. Ich habe fast eine Stunde gebraucht bis ich rausfand das die schleifen rückwärts läuft. Man kann es nur im Assembler sehen.
Guten Abend DelTurbo,

so ganz verstehe ich die Aufregung nicht.
Ziel war es einen freien Slot zu finden, ob der nun näher bei der 0 oder bei der 100 liegt
dürfte dem Programmablauf doch relativ wurscht sein. Es soll doch nur ein freier Slot gefunden werden.


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.237 Beiträge
 
Delphi 2007 Architect
 
#2

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 10:48
so ganz verstehe ich die Aufregung nicht.
Ziel war es einen freien Slot zu finden, ob der nun näher bei der 0 oder bei der 100 liegt
dürfte dem Programmablauf doch relativ wurscht sein. Es soll doch nur ein freier Slot gefunden werden.
Hier ist doch keine aufregung. Bitte schau dir den Assemblercode an.

Aber ich wiederhohlen gerne nochmal. Es ging legendlich darum, anderen usern die möglichkeit zu geben nicht in die selbe "falle" zu stolpern. Es war kein 3 Seitenlanger Thread geplant.

Hintergrund warum ich das gemacht habe: Wenn man etwas sucht, ist delphipraxis immer weit oben bei den treffen. (Ich hoffe nur das der googlebot schnell die links korrigiert) So gelangte ich damals auch hier her. Und ich merkte schnell das einem, auch wenn man anfänger ist, hier immer geholfen wird. An dieser stelle nochmals ein dickes lob an die Mod´s und den ganzen usern hier im Board.

Da meine "demo" schon 7x geladen wurde und keinerlei rückmeldung kommt, nehme ich an das auch bei anderen Delphi-versionen keine warnung kommt.

Wäre toll wenn dieses noch als rückmeldung käme. Ein satz reicht um hier nicht weiter abzugleiten.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.747 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 11:41
Da meine "demo" schon 7x geladen wurde und keinerlei rückmeldung kommt, nehme ich an das auch bei anderen Delphi-versionen keine warnung kommt.
  1. An deiner Demo kann man gar nicht sehen, ob die Suche "von oben" oder "von unten" läuft, weil du nur ein Element mit Wert True in MyArray hast. Erst, wenn man noch ein weiteres einfügt (z.B. MyArray[7] := True; ), wird's aussagekräftig.
  2. Ich habe Optimierung aktiviert. Trotzdem läuft i bei mir (D2007) im Debugger hoch und nicht runter.
Also irgendwie kann ich kein Problem feststellen.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.042 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 11:43
Da meine "demo" schon 7x geladen wurde und keinerlei rückmeldung kommt, nehme ich an das auch bei anderen Delphi-versionen keine warnung kommt.

Wäre toll wenn dieses noch als rückmeldung käme. Ein satz reicht um hier nicht weiter abzugleiten.
Es kommt keine Warning, weil du mit Break aus der Schleife gehst und daher i einen definierten Wert hat (wie oben schon zitiert wurde). Hast du kein break, wird eine Warning ausgegeben. Und in der Tat steht bei mir i dann auf 10, obwohl laut der Schleife nur von 0 bis 9 gelaufen wird.

  1. An deiner Demo kann man gar nicht sehen, ob die Suche "von oben" oder "von unten" läuft, weil du nur ein Element mit Wert True in MyArray hast. Erst, wenn man noch ein weiteres einfügt (z.B. MyArray[7] := True; ), wird's aussagekräftig.
  2. Ich habe Optimierung aktiviert. Trotzdem läuft i bei mir (D2007) im Debugger hoch und nicht runter.
Also irgendwie kann ich kein Problem feststellen.
Im Debugger sieht man auch nix vom rückwärts laufen, sondern nur im asm code (wurde auch im Eingangspost erwähnt)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (11. Jun 2010 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.747 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 11:52
Im Debugger sieht man auch nix vom rückwärts laufen, sondern nur im asm code (wurde auch im Eingangspost erwähnt)
Ach, da war ich wohl im Überschwang des vermeintlichen Erfolgs zu schnell.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.042 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 12:07
Im Debugger sieht man auch nix vom rückwärts laufen, sondern nur im asm code (wurde auch im Eingangspost erwähnt)
Korrektur: Sofern man i nicht innerhalb der Schleife verwendet, kann man auch im Debugger sehen, dass runtergezählt wird. Verwendet man i nach der Schleife (trotz warning) kann es vorkommen, dass nicht abwärts gezählt wird. Der Wert von i nach der Schleife stimmt trotzdem nicht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:29 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