Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi 7 Anwendung sehr langsam auf Win 7 (x64) (https://www.delphipraxis.net/166062-delphi-7-anwendung-sehr-langsam-auf-win-7-x64.html)

Lemmy 27. Jan 2012 16:02

Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Hallo,

habe das Problem, dass meine Delphi 7 Anwendung unter Win 7 (vermutlich nur unter x64) sehr langsam läuft. Fährt man allerdings mit der Maus aus der MainForm raus (nur rausfahren, nicht klicken), dann läuft die Anwendung "normal" schnell. Hat jemand eine Idee was das sein könnte bzw. wie man das lösen könnte?

GRüße

jaenicke 27. Jan 2012 16:09

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Hast du Mausevents, OnIdle oder so etwas benutzt?
Wie sieht es mit der CPU-Auslastung aus, korreliert die mit der Langsamkeit?

Ansonsten Standardlösung:
Alles ausbauen bis es nicht mehr auftritt. ;-)
Denn eine leere Standardanwendung hat das Problem ja z.B. nicht.

Bernhard Geyer 27. Jan 2012 16:12

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Wirst halt was falsch gemacht haben :-)

Quatsch beiseite. Hast zu zugriff auf eine Profiler wie AQtime? Damit einfach mal mit Debug-Infos laufen lassen und sehen wo die Zeit verbraten wird.
Tipp auf eine Art "Ich mach immer ein Refresh des Grids". Sieht man wegen teilweise Automatischen Doublebuffering unter Win7 nicht unbedingt.

ist auf dem PC auch normale Schriftgröße eingestellt. Falls nein und du hast kein Win7 Manifest wird jedes Neuzeichnen eines Grafikelementes erst mal in ein zwischen-Bitmap gemacht das dann skaliert wird - Würde man an unschafen Texten in deiner App sehen.

Lemmy 27. Jan 2012 16:28

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Hi,

das Problem tritt in einer großen Anwendung auf, lässt sich aber auch mit einer Mini-Anwendung nachstellen: Datenbankzugriff mit IBobjects und per

Delphi-Quellcode:
  Query.First
  while NOT Query.EOF do
    Query.Next
keine Events, kein zusätzlicher Code, keine sonstige Handler, rein nur eine Datenmenge durchlaufen. Es spielt auch keine Rolle ob dabei ein Grid an der Query angeschlossen ist. Deshalb schließe ich irgend welche Programminternas komplett aus.

Nach dem Manifest muss ich mal schauen, ist aber glaube ich nicht drin, weil ich bei den ProgressBars kein Marquee habe. Deshalb wäre das mal ne Option zu schauen ob es daran liegt..


Nachtrag: Ich habe das ganze auch mal mit den UIB und einem Standard-GRid nachgestellt - da tritt das Problem nicht auf. Könnte das ggf. auf ein Problem der IBObjects (Paint?) hindeuten?

Grüße

Bernhard Geyer 27. Jan 2012 16:33

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Zitat:

Zitat von Lemmy (Beitrag 1148000)
... , lässt sich aber auch mit einer Mini-Anwendung nachstellen: Datenbankzugriff mit IBobjects

Aktuelle IBObjects-Version? Da ich diese nicht habe kann nicht querchecken.

shmia 27. Jan 2012 16:36

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Ist da vielleicht irgendwo im Sourcecode von IBObjects ein MSDN-Library durchsuchenGetMessage(), MSDN-Library durchsuchenWaitMessage() oder MSDN-Library durchsuchenPeekMessage() enthalten?

Lemmy 27. Jan 2012 17:07

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
HI,

eigentlich verwenden wir die 4.7, ich habe es aber auch mit der Trial 4.9 nachbauen können. Mail an die Mailinglist ist schon raus.

Wegen den Get, Wait, Peekmessage - muss ich passen, so tief bin ich nicht eingestiegen, ich kann mit Grep die Sourcen aber nachher mal durchsuchen lassen.

Grüße

Lemmy 27. Jan 2012 22:01

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
scheint wohl ein Problem der IBObject zu sein, Jason arbeitet nach eigenen Aussagen gerade an dem Problem... Danke für euer Ohr!

Grüße

WladiD 21. Jun 2012 09:23

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Und wieder ein Thread, den ich aus der Vergessenheit hervorholen möchte...

Wir verwenden hier auch dieses Monster Namens IBObjects und haben ab und zu auch unerklärliche Phänomene, die eigentlich nichts miteinander zu tun haben dürfen, wie auch in deinem Fall in einer simplen IBO-Fetch-Schleife. Naja und wo ein komisches Verhalten ans Tageslicht kommt, ist meist ein Application.Processmessages nicht weit. Also habe ich die Sourcen von den IBOs gecheckt und wollte es nicht fassen...

In der Methode TIB_Session.DoAppCallback wird tatsächlich dieses Misskonstrukt der VCL verwendet und von TIB_Dataset.DoAppCallback konsumiert. Natürlich nur unter bestimmten Bedingungen, unter Anderem abhängig von der Laufzeit des Fetch-Vorgangs (zumindest deutet der Einsatz von GetTickCount darauf hin). Aber so genau konnte ich dem nicht folgen, ist ein sehr verwobener und unstrukturierter Code.

Jedenfalls kann man dem Vorbeugen, wenn man die Eigenschaft TIB_Dataset.CallbackInc nach der Initialisierung auf -1 setzt (Standard ist 5). Dann werden definitv keine Application.Processmessages ausgeführt. Übrigens TIB_Cursor, TIB_Query/TIBOQuery leiten vom TIB_Dataset ab.

Wenn das Problem bei Euch noch (sporadisch) besteht, kannst du es mal testen...

Guentiganz 19. Sep 2013 08:51

AW: Delphi 7 Anwendung sehr langsam auf Win 7 (x64)
 
Wir hatten das selbe Problem

Ursache die MouseThemes in Kombintation mit angepassten Cursors.
Deaktivieren der Win7 MouseThemes hat geholfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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