Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 64er Prozessoren u Delphi 32 Probleme (https://www.delphipraxis.net/88229-64er-prozessoren-u-delphi-32-probleme.html)

jaikai 12. Mär 2007 11:04


64er Prozessoren u Delphi 32 Probleme
 
Moin

Ich weiss nicht, ob ich der Einzige bin, der diese Art Probleme hat:

Platform XP u NT4, Delphi 5, 7
Das Programm hat nichts mit Internet, Multimedia, Datenbank oder *.dll zu tun. Ganz normale Bauteile der Delphi IDE plus einige Fremdkomponenten...

Das Programm arbeitet stinknormale Stringlisten ab, holt, setzt, berechnet Werte und spuckt die Ergebnisse aus. Keine Threads, weil die Listen dutzendfach modifiztiert werden.

Großteils scheint es so, als würde auf den 64er Prozessoren alles ein wenig schneller gehen als auf XP mit nur einer CPU. Die Progressbar rast zunächst schneller, Routinen werden offensichtlich schneller abgearbeitet. Aber dann...

Da ist nichts, worauf ich sagen könnte: "Aha, deshalb die Bremse..."

Die Routinen stocken an den Punkten, wo die Single-CPU normal weiter durchzieht und erinnern an 486er Zeiten. Sie arbeiten mit vielleicht 10-20% der üblichen Geschwindigkeit (Routinen von 10 Sekunden (Single-CPU) dauern über eine Minute bei 64er Dual Core).

Mir fehlt trotz Recherchen ein wenig die Vorstellung, warum dieser Leistungseinbruch stattfindet. Taskmanager und dessen Diagramme, Everest, sie alle meinen, das System würde okay und doppelherzig funktionieren.

Weil ich keine weitere Vorstellung hab, obs denn am XP (Vista) System, am alten Delphi (die neuen Funktionen benötige ich doch gar nicht)...

Hat jemand eine Idee, wo zu suchen ist und - wie mans umschiffen kann?

Danke

Muetze1 12. Mär 2007 11:18

Re: 64er Prozessoren u Delphi 32 Probleme
 
Hast du irgendwelche Timings mit drinne, bzw. QueryPerformanceCounter oder andere Zeitbasen die deine Routinen (auch vllt. indirekt) nutzen?

jaikai 12. Mär 2007 11:31

Ich verstehe nicht ganz
 
Hi,

Ich weiss nicht ganz, was ein QueryPerformanceCounter meint...

Aber es laufen bis zu vier Timer, davon 2 permanent. Der eine kümmert sich um den Aufbau (als Update, ggf Neuzeichnen und sowas), der andere prüft/liest als Thread das Vorhandensein der Dateien, sofern geändert...

Die "auffällige, langsamer gewordene" Hauptroutine nimmt von einigen notwendigen Application.Processmessages alles an Zeit, wasse kriegen kann.

In dem Moment greift sie auf längere Listen zu und verrechnet lediglich die Werte, an sich nichts außergewöhnliches...

Bin ratlos..

Eichhoernchen 12. Mär 2007 12:28

Re: 64er Prozessoren u Delphi 32 Probleme
 
Tritt das Problem auch auf, wenn du deine Anwendung per Taskmanager nur einer der zwei Kerne zuweißt?
Wenn nicht, dann wird es irgendwie mit Zeitmessungen zutun haben, wie auch mein Vorposter schon vermutete.


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