AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie spühre ich unsichtbare Programmfehler auf?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie spühre ich unsichtbare Programmfehler auf?

Ein Thema von daredd · begonnen am 5. Sep 2009 · letzter Beitrag vom 28. Sep 2009
Antwort Antwort
Seite 1 von 3  1 23      
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#1

Wie spühre ich unsichtbare Programmfehler auf?

  Alt 5. Sep 2009, 22:26
Hallo Freunde,

ich habe ein Programm, das in Delphi geschrieben wurde. Es arbeitet zusammen mit einer Datenbank (GDB auf Firebird Server mit BDE).

Nun ist es so das es nach einer gewissen Zeit einfach nur hängen bleibt, bzw. sehr langsam läuft.
Ich vermute es liegt an der BDE oder an der Datenbank an sich, je mehr Daten in der Datenbank gespeichert sind, desto langsamer wird das Programm mit der Zeit.


Kann mir einer von euch ein tipp geben? Gibt es irgendein Tool womit ich das Programm durchlaufen lassen kann um evtl. Fehlerstellen zu finden?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 5. Sep 2009, 22:55
Benutze FastMM, um das Programm auf Speicherlecks zu überprüfen.
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#3

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 5. Sep 2009, 23:22
Ah, stimmt! Davon habe ich schon mal gehört.

Kannst du mir sagen wo ich es her bekomme? Das muss man doch irgendwie ins Delphi-Projekt mit einbinden oder?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 6. Sep 2009, 00:32
Welche Delphi-Version hast du denn?

In neueren Delphis ist ja eine nicht ganz atuelle und wohl etwas abgespeckte Version davon enthalten.
(der alte schlechtere Delphi-MemoryManager wurde mal dadurch ersetezt)

ansonsten Bei Google suchenFastMM (man mag's kaum glauben ... gleich ganz oben zu finden )
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 6. Sep 2009, 08:58
Benenne die DB unbedingt um!
GDB ist eine magische Endung, die seit XP für irgendwelche Sicherungsdienste benutzt wird.
Windows wird dich so schnell ausbremsen, dass es nicht mehr lustig ist.

Ansonsten, falls es das nicht war, gibt es IMO keine richtigen, automatischen Sampling und Profiling tools für Delphi.
AQTime kommt aber nahe ran (ist aber ewig her als ich es das letzte Mal angefasst habe).
Du willst ja genau wissen was langsam wird und dich darauf konzentrieren, anstatt die ganze App zu kaputtoptimieren.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 6. Sep 2009, 09:21
Die Aussage 'es wird immer langsamer' ist reichlich unpräzise.
Was wird langsamer? Wo? Welche Aktion ist betroffen?

Präzisiere dein Problem, analyisere es und kreise es ein. Programme sind immer noch deterministisch, sodaß man so eine Performancebremse relativ schnell durch Eingrenzung finden kann.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#7

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 6. Sep 2009, 19:56
Gut, danke Leute.
Ich werde das mal ausprobieren.

@ Elvis:

Wie meinst du das mit Datenbank umbennen? Die Endung .gdb kann ich doch nicht einfach so weg nehmen?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 6. Sep 2009, 20:26
Zitat von daredd:
Gut, danke Leute.
Ich werde das mal ausprobieren.
@ Elvis:
Wie meinst du das mit Datenbank umbennen? Die Endung .gdb kann ich doch nicht einfach so weg nehmen?
Warum denn nicht?
Dateiendungen sind doch eigentlich nur nur ein Relikt aus der DOS-Ära und eigentlich relativ belanglos.
Nunja, außer wenn sie .GDB heißt, dann wird Windows nämlich irgendwelchen Käse bei allen Änderungen verzapfen.
Wenn ich mich recht entsinne waren es ständige Shadow copies, weiß es aber nicht genau.
Ist auch nicht wichtig. Ändere sie ASAP zu irgendwas != GDB. Das kann fdb sein, das kann auch .HeinzAugustFerdinandOlafDB sein.
Das ist ein Problem, welches seit 2002 eigentlich immer und überall und in jeder Readme ud FAQ zu finden sein sollte, die auch nur weitläufig etwas mit Interbase oder Firebird zu tun hat, mehrfach und ausführlich beschrieben sein sollte.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#9

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 7. Sep 2009, 08:28
Falls das Programm nach einem Neustart wieder schneller läuft, kommt als Ursache eine Transaktion in Frage, die nicht beendet wird.
Wenn es sich um die Transaktion handelt, in der die Daten eingefügt werden, einfach Commit zwischendurch aufrufen.
Es könnte sich aber um eine andere Transaktion handeln(z.B. für irgendwelche datensensitive Steuerelemente zur Anzeige).
Da sich der Server jeden Zustand der Daten seit dem Start der ältesten Transaktion merken muss, sollten auch solche Transaktionen regelmäßig geschlossen und neu geöffnet werden.

Das Problem mit der GDB-Dateiendung tritt nur beim Öffnen solcher Dateien auf. Windows erstellt dann je nach Konfiguration eine Kopie der Datenbank. Viel gefährlicher ist in diesem Zusammenhang, daß die aktuelle Datenbank z.B. bei einer Systemwiederherstellung automatisch durch eine ältere Version ersetzt werden könnte.
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#10

Re: Wie spühre ich unsichtbare Programmfehler auf?

  Alt 8. Sep 2009, 23:36
Vielen Dank Blup! Und cooler Nickname
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:16 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