AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi CPU-Auslastung bei Berechnungen regeln
Thema durchsuchen
Ansicht
Themen-Optionen

CPU-Auslastung bei Berechnungen regeln

Ein Thema von DarkLord0 · begonnen am 28. Dez 2004 · letzter Beitrag vom 29. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#1

CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 21:19
Hallo,

Ich brauche eine Möglichkeit, die CPU-Auslastung, die eine Anwendung während Berechnungen verursacht, zu regeln, also reduzieren zu können. Wenn ein Programm beispielsweise sehr viele Berechnungen durchführen muss (oder z.B. eine große Datei schreibt), die ein paar Minuten dauern, verursachen solche Programme bei mir immer 98bis99 % CPU-Auslastung. Das Programm selbst reagiert dabei überhaupt nicht mehr und das ganze System wird verlangsamt. Ich habe schon versucht die Priorität des ganzen Programmes mit SetPriorityClass runterzuregeln, aber das hat nichts genützt.
Ich benutze Delphi 6.

tia,
DarkLord0
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#2

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 21:46
Zitat:
Ich habe schon versucht die Priorität des ganzen Programmes mit SetPriorityClass runterzuregeln, aber das hat nichts genützt.
Das sollte aber funktionieren!
Wenn du die Priorität herabsetzt, lastet das Programm wenn es alleine ist weiterhin die CPU voll aus, aber sobald ein anderes Programm Rechenzeit benötigt bekommt es den Vorzug.
Lukas
  Mit Zitat antworten Zitat
Joe24

Registriert seit: 21. Dez 2004
Ort: Berlin
51 Beiträge
 
#3

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 22:12
Versuch mal diesen Befehl in die Prozessorlastige Methode einzubauen,
evtl. direkt in die Schleifen, falls vorhanden.

Application.Processmessages;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 22:17
Das wird an der Situation nichts ändern. Die Methode Processmessages sorgt nur dafür, dass Nachrichtenschlange abgerabeitet wird.

Wie Tubos schon gesagt hat, wenn der Prozess alleine läuft, wird er immer ca. 99% der Rechenzeit bekommen, wenn man ihn nicht bremst mit MSDN-Library durchsuchenSleep. Aber warum sollte man das tun? Überlegen, ob man was falsch gemacht hat, sollte man nur, wenn er keine Rechenzeit abgibt, wenn andere Prozesse sie benötigen. An der Priorität würde ich nichts ändern. In das Scheduling von Wiondows eingreifen, bringt selten was.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#5

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 23:02
das wichtigste problem ist ja, dass die anwendung selbst nicht mehr reagiert.
wenn ich beispielsweise die berechnungen durch das klicken auf einen button auslösen lasse,
wird der button weiterhin heruntergedrückt dargestellt, bis die berechnung fertig ist. das programm empfängt zwar andere (z.B. onClick) events, arbeitet diese aber erst ab, nachdem die berechnung beendet ist. das programm wird also quasi "eingefroren" (wobei änderungen, die durch die buttonclick prozedur selber gemacht werden, trotzdem dargestellt werden).
Der Ansatz mit Application.Processmessages; hat übrigends leider auch nicht geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 23:06
Zitat von DarkLord0:
Der Ansatz mit Application.Processmessages; hat übrigends leider auch nicht geholfen
Das sollte aber dein Fenster wieder reagieren lassen. Besser wären allerdings Threads.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#7

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 23:11
Die beste Lösung sind sicherlich Threads.
Luckie hat da ein tolles Tutorial geschrieben: http://www.luckie-online.de/Tutorials/
Lukas
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#8

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 23:13
Zitat von Luckie:
Zitat von DarkLord0:
Der Ansatz mit Application.Processmessages; hat übrigends leider auch nicht geholfen
Das sollte aber dein Fenster wieder reagieren lassen. Besser wären allerdings Threads.
Sorry, da hatte ich einen Fehler gemacht. Ich habe den Befehl nochmal in *alle* wichtigen Schleifen geschrieben und jetzt reagiert das programm wieder.
danke, joe24, das war genau das, was ich gesucht habe
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 28. Dez 2004, 23:16
ABER: Das ist nicht das Allheilmittel! Erstens macht dein Programm so lange niuchts, wie es Nachrichten von Windows Bekommt. Schieb es mal andauernt hin und her und du wirst sehen, was ich meine. Und zweitens kann das ungeahnte Nebeneffekte haben. Threads wären wohl wirklich die bessere und sauberere Lösung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#10

Re: CPU-Auslastung bei Berechnungen regeln

  Alt 29. Dez 2004, 00:00
was könnten das denn für "ungeahnte nebeneffekte" sein, bzw wo würden die herrühren ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:07 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