Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Debugging in der IDE (https://www.delphipraxis.net/163996-debugging-der-ide.html)

DeddyH 25. Okt 2011 09:37

AW: Debugging in der IDE
 
Ist natürlich eine Gewissensfrage. Was ist mir lieber: ein Programm, das langsam funktioniert oder eins, das schnell abstürzt? :mrgreen:

foobar3000 25. Okt 2011 09:47

AW: Debugging in der IDE
 
... Danke :-)

himitsu 25. Okt 2011 09:47

AW: Debugging in der IDE
 
Zitat:

Zitat von DeddyH (Beitrag 1132389)
ein Programm, das langsam funktioniert oder eins, das schnell abstürzt? :mrgreen:

Diese Prüfung verhindert aber (primär) nicht das Abstürzen.
Der Fehler ist dann ja so oder so enthalten.

OK, man kann auch mal "erfolgreich" auf einen nichtexistierenden Index zugreifen, ohne daß es gleich verreckt.

jaenicke 25. Okt 2011 10:10

AW: Debugging in der IDE
 
Zitat:

Zitat von DeddyH (Beitrag 1132389)
Ist natürlich eine Gewissensfrage. Was ist mir lieber: ein Programm, das langsam funktioniert oder eins, das schnell abstürzt? :mrgreen:

Falsche Fragestellung, richtig wäre:
Was ist mir lieber: ein Programm, das langsam ist und mit einem konkreten Fehler abstürzt oder eins, das schnell ist und mit einer Zugriffsverletzung oder ähnlichem abstürzt?
Dass man dann eine Debugversion nachreichen kann, ist klar.

Gerade diese Option bremst ein Programm jedenfalls oft stark aus, da ggf. sehr viel zusätzlicher Code ausgeführt wird.

DeddyH 25. Okt 2011 10:25

AW: Debugging in der IDE
 
Zitat:

Zitat von himitsu (Beitrag 1132386)
Das Problem ist, daß zusätzliche Prüfungen den Code schon etwas ausbremsen können (wenn sie sehr oft vorkommen).

Ich bezog mich auf diesen Satz allgemein und nicht im Zusammenhang mit Bereichsprüfungen etc. Ihr könnt Euch also wieder beruhigen und Euch vielleicht mal auf wichtige Dinge konzentrieren. :twisted:

himitsu 25. Okt 2011 10:31

AW: Debugging in der IDE
 
Ein mittelschwerer Fall:
Delphi-Quellcode:
var
  S: String;
  i, i2: Integer;
  C, C2, C3: Cardinal;
begin
  SetLength(S, 10000000);

  // CPU hochfahren
  for i := 1 to Length(S) do
    if S[i] = ' ' then ;

  {$RANGECHECKS ON}
  C := GetTickCount;
  for i2 := 1 to 20 do
    for i := 1 to Length(S) do
      if S[i] = ' ' then ;
  C2 := GetTickCount - C;

  {$RANGECHECKS OFF}
  C := GetTickCount;
  for i2 := 1 to 20 do
    for i := 1 to Length(S) do
      if S[i] = ' ' then ;
  C3 := GetTickCount - C;

  ShowMessage(Format('mit = %d ms | ohne = %d ms | +%.1n%%',
    [C2, C3, (C2 - C3) / C3 * 100]));
Aber wenn eh nicht viel gemacht wird, dann stört es nicht unbedingt.



*konzentrier*


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 2 von 2     12   

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