php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.10.2010, 14:56  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard [Erledigt] Endlosschleife erkennen

Tag auch,

ich hab vorhin ein Script was über die Konsole gestartet wird geändert. Das Script liest und verarbeitet eine Datei (vergleich mit DB, etc.). Da dort viel gemacht wird kann das durchaus schon länger dauern.

Ich hab das Script mit einer kleinen Datei (ca. 20 Zeilen) getestet, jetzt habe ich vor ca. 4 Stunden das Script mit einer Datei mit 4000 Zeilen gestartet und es läuft immer noch.

Meine Frage nun: wie kann ich erkennen ob ich hier eine Endlosschleife programmiert habe oder ob das Script tatsächlich noch Zeit für die eigentliche Aufgabe braucht? Sieht man den unterschied irgendwo anhand des laufenden scripts (z.B. über "top" )?

Gruß
cy
cycap ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.10.2010, 14:59  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Wenn ich ne Endlosschleife vermute bau ich immer einen extra Zähler ein, der hart abbricht. Ist vielleicht die einfachste Methode.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:00  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Naja, das kommt sehr auf die Art der Endlosschleife an. Eine Endlosschleife a la
PHP-Code:
while (true) {
    
// sitz fein auf dem Bänkchen

verhält sich sicherlich anders als eine Schleife a la
PHP-Code:
while (true) {
    
// grab die Ozeane um

Die einzige Möglichkeit, die mir einfiele, wäre im Skript selbst einen Imkrement auszugeben. Wenn der ins Unendliche läuft, kannst du ziemlich sicher von einer Endlosschleife ausgehen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:08  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

einfach alle paar Schleifendurchläufe eine Kontrollausgabe (x Einträge verarbeitet).

So kannst du, wenn es ihn dann doch wirft, auch gleich sehen, wo in deiner Datei ein Wurm drin ist
zwutz ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:10  
Erfahrener Benutzer
 
Benutzerbild von Screeze
 
Registriert seit: 04.01.2009
Beiträge: 844
PHP-Kenntnisse:
Fortgeschritten
Screeze wird schon bald berühmt werden
Standard

die x einträge verarbeitet lösung ist problematisch, wenn die endlosschleife so gebaut ist, dass wirklich endlos einträge vorgegaukelt werden.
Möglich wärs villeicht, wenn die einträge eine fortlaufende ID haben, diese IDs auszugeben, dann lässt sich im zweifelsfall nachprüfen ob die letzten IDs vileicht schonmal aufgetaucht sind.
__________________
Develovision Blog
Screeze ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:10  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nee, mir geht es ja um das Script was jetzt in diesem moment läuft. Lässt sich irgendwie rausfinden ob das nochmal zum Ende kommt? Z.B. an den Systemressourcen oder so?
cycap ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:14  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

http://de.wikipedia.org/wiki/Halteproblem
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:18  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

semi-entscheidbares Problem, ohje, lol
cycap ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:22  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Du kannst bei einem Programm zwar untersuchen, welche Syscalls es in welcher Zeit ausführt und daraus ableiten, ob sich ein Programm in einer Schleife befindet, aber es sagt dir nichts, ob diese Schleife jemals enden wird oder eben nicht.
CPU-Aktivität und Speicherverbrauch sind hierfür auch nicht sonderlich aussagekräftig, wie ich schon in #3 implizierte.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 21.10.2010, 15:29  
Erfahrener Benutzer
 
Benutzerbild von Screeze
 
Registriert seit: 04.01.2009
Beiträge: 844
PHP-Kenntnisse:
Fortgeschritten
Screeze wird schon bald berühmt werden
Standard

Was mir noch einfällt:
Evtl. kannst du anhand dessen was das Script tut/ausgibt erkennen ob es noch sinnvoll arbeitet.
Aktualisiert es beispielsweise db-einträge, könntest du da villeicht ansetzen...
__________________
Develovision Blog
Screeze ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[REGEX] domain mit und ohne www. erkennen Ghostt PHP Tipps 2010 35 22.11.2010 00:40
Mehrere Logins mit einem Account erkennen phpbeginner PHP Tipps 2010 9 13.10.2010 14:04
socket_read laeuft in Endlosschleife dertechniker PHP-Fortgeschrittene 4 20.08.2010 17:17
Wie mit fsockopen endlosschleife? PHPFrisch PHP Tipps 2010 7 18.01.2010 10:31
[Erledigt] regex 2 URLs erkennen Ghostt PHP Tipps 2009 7 04.12.2009 15:47
[Erledigt] Wie erkennen, ob Zugriff möglich ist, oder nicht? R4v3r JavaScript, Ajax und mehr 1 27.03.2009 12:34
zeitliche Überschneidung erkennen web-producer PHP-Fortgeschrittene 29 14.01.2009 18:07
Parameter erkennen. d.brenda PHP Tipps 2008 1 20.02.2008 12:43
Zurück-Klick erkennen PHP Tipps 2006 10 03.05.2006 17:53
warum endlosschleife? PHP Tipps 2005-2 6 31.08.2005 20:45
Endlosschleife vom Apache aus verhindern Server, Hosting und Workstations 1 19.06.2005 17:49
Bildformat aus einer Datei erkennen RcRaCk2k PHP Tipps 2005 2 15.04.2005 10:56
[Erledigt] Browser erkennen PHP Tipps 2005 1 04.03.2005 20:29
web oder wap erkennen Soese PHP Tipps 2005 6 19.01.2005 10:49
Bei Abfrage leeres Feld erkennen und reagieren? Datenbanken 6 13.12.2004 15:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
endlosschleife erkennen, php endlosschleife erkennen, php endlosschleife, endlosschleife erkennen php, \endlosschleife erkennen \, apache endlosschleife, programm endlosschleife erkenner, endlosschleife scripte erkenne apache, erkennen von endlossschleifen, programmieren endlossschleifen erkennen, php endlosschleife while true, erkennen von endlosschleifen, endlosschleife erkennbar

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum