Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249385 (10821)
  Suchen
 Zurück zur Übersicht
 AutorThema: While Schleife und Computer Belastung ?
Andreas Knöpfli
Datum:26.10.01 21:37 Antwortenals Email verschicken (wotan@gmx.ch) 


Hallo Profaner

ich habe jetzt ein Tool geschrieben dass die Verbindung automatisch um 23:00 trennt, die Zeit wird nur alle 60sec überprüft (Sleep Befehl)
ich habe mir gedacht dass dadurch der computer weniger belastet wird..

Frage ?? stimmt das so ? oder ist der sleep Befehl garnicht nötig ?

Grüsse
Andreas


Moritz Kersten
Datum:26.10.01 22:52 Antwortenals Email verschicken (IsNoGood2000@aol.com) 


hallo Andreas,

deine überlegung stimmt !
Wenn du eine While-Schleife ohne sleep machst, hast du maximale Prozessorauslastung weil dein Programm so schnell wie es nur geht durch die Schleife rast.

Dabei tritt dann auch oft eine Verzögerung auf, wenn du z.B. eine While-Schleife ohne Sleep hast in der sich eine Grafik immer mit dem Mauszeiger mitbewegt und du das beispiel compilierst und testest, wirst du merken das die Grafik hinterherhängt. Umso länger das Beispiel läuft umso extremer wird die Verzögerung weil das Programm schneller die Befehle durchläuft als sie abgearbeitet werden können und sie sich speicher ansammeln.

Also immer Sleep bei dauerhaften Schleifen einbauen, auch wenn es nur Sleep 1 ist !

Ich hoffe ich hab hier kein mist geschrieben, aber so sind auf jedenfall meine erfahrungen gewesen.

mfg Moe


Sascha Willecke
Datum:30.10.01 09:06 Antwortenals Email verschicken (sascha@willecke-net.de) 


Hallo Moritz,

bist du sicher das das stimmt: "Umso länger das Beispiel läuft umso extremer wird die Verzögerung weil das Programm schneller die Befehle durchläuft als sie abgearbeitet werden können und sie sich speicher ansammeln."?

Wird bei Profan wirklich jeder nicht bearbeitete befehl im speicher gelagert und das Programm läuft trotzdem weiter? Das würde ja heißen wenn ein Programm eine ziemlich lange zeit läuft, dass dann irgendwann der speicher randvoll ist denke ich! Kann ich irgendwie nicht glauben!

Gruß
sascha


Moritz Kersten
Datum: 30.10.01 15:51 Antwortenals Email verschicken (IsNoGood2000@aol.com) 


Hallo Sascha,

also ich konnte mir das nur so erklären ! Wenn kein Sleep mit drin ist, schafft es das Programm irgendwie nicht schnell genug die Befehle abzuarbeiten und diese sammeln sich irgendwo an (im Speicher schätze ich mal :). Wenn Sleep mit drin ist hat das Programm (oder Windows) genug Zeit um den Befehl auszuführen da das Programm ja eine Pause einlegt und keine neuen Befehle ausführt und die angesammelten Befehle abgearbeitet werden können und somit den Speicher wieder freigeben.

"Das würde ja heißen wenn ein Programm eine ziemlich lange zeit läuft, dass dann irgendwann der speicher randvoll ist denke ich! Kann ich irgendwie nicht glauben!"
Wenn Sleep mit drin ist kann das ja wie oben beschrieben nicht passieren, aber probiers mal mit einer Schleife ohne Sleep in der nur irgendwas einfaches passiert und nach einer giwissen Zeit stimmt da irgendwas bestimmt nicht mehr.

Entferne mal bei einem meiner Demos den Sleep Befehl und es tritt, zumindestens bei mir, diese Verzögerung auf und der Rechner kann sogar abschmieren !

Absolut sicher bin ich mir natürlich auch nicht weil das nur eine Vermutung ist.
Vielleicht kennt sich jemand ja besser damit aus und postet hier mal.

mfg Moritz


 Zurück zur Übersicht