Skript-Performanceproblem bei Windowsstart

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
etienne77
User
Beiträge: 15
Registriert: Freitag 4. März 2005, 18:38
Wohnort: Baden-Württemberg

Hallo ,

ich lasse beim Windowsstart ein Python-Skript starten das verschiedene Ordner vegleicht und bei Differenzen entsprechend synchronisiert. Das Problem ist jetzt folgendes: In der Cmd öffnet sich das Skript beginnt und warten nun geduldig bis nach und nach alle Anwendungen und anderen Skripte hochfahren. Das Skript beginnt und läuft einfach nicht in einem Rutsch durch. (nur alle 10-15 sec tut das skript was insegesamt dauert die Skriptausführung dann ca. 60 sec). Wenn keine Differenzen zwischen den Ordnern bestehen läuft das Skript wenn ich es nach dem Windowsstart manuell ausführe in ca 1 sec durch.
Habe schon pyc und exe probiert ohne Effekt. Was mich wundert, ist das mir bei .bat Dateien die ich auch beim Windowsstart anstarte die cmds nur so um die Ohren fliegen. Dass python skript allerdings lässt scheinbar allen andernen Tasks Vorrang!
Hat jemand eine Idee was hier schief läuft?

Ciao
Stefan
BlackJack

Braucht es nur 1 Sekunde wenn Du es nochmal startest nachdem es schon einmal lief? Wenn ja, dann ist das wahrscheinlich kein vernünftiger Vergleichspunkt weil die meisten benötigten Daten von der Platte dann schon im RAM sein dürften und nicht mehr von der Platte gelesen werden müssen. Das geht dann natürlich schnell.

Das Skript wird viel von der Platte lesen -- genau das machen aber andere Teile des Betriebssystems beim Hochfahren des Systems auch, d.h. da dürfte der Engpass liegen.
etienne77
User
Beiträge: 15
Registriert: Freitag 4. März 2005, 18:38
Wohnort: Baden-Württemberg

Hallo,

das Skript braucht 1 sec wenn es keine Synchronisation der Dateien vornimmt unabhängig ob es schonmal gestartet wurde oder nicht! Mich wundert es halt das es eigentlich mit als erster Prozess gestartet wird und quasi als letztes schliesst.
Ich weiss auch nicht ob das ein wirkliches Python-Problem ist. Wahrscheinlich ist die Frage was fürs Windowsforum
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Man muß wissen, das Windows einen schnellen Systemstart vorgaukelt, in dem recht schnell die GUI geladen wird, wobei bei diesem Zeitpunkt noch viele Sachen zu laden sind... Will sagen, das das System nach dem oberflächlich beendeten Systemstart noch einiges zum Laden hat, also noch ziemlich beschäftigt ist...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
knekke
User
Beiträge: 100
Registriert: Freitag 29. Oktober 2004, 17:23
Wohnort: Schweden

jaja, das gute Windows....
Wie bindest du denn das skript in den Systemstart ein?
etienne77
User
Beiträge: 15
Registriert: Freitag 4. März 2005, 18:38
Wohnort: Baden-Württemberg

Hallo ,

ich binde das Skript über einen Registry-Key ein:
Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Wert "d:\skripte\python\backup_copy2.py"

habe auch schon andere Werte wie
"Cmd /c d:\skripte\python\backup_copy2.pyc probiert "

Mir ist schon klar das Windows beim Starten ordentlich beschäftigt ist aber im Vergleich zu den anderen Skripte die Laufen ist das py Skript doch sehr lahm.

Mir wäre es sowieso lieber das Skripte liefe beim Herunterfahren, allerdings fehlen mir da die richtigen Reg-Keys um dies einzustellen. Leonidas hat mir das Tool Shutdown Now vorgeschlagen. Das kann zwar Skripte beim Runterfahren starten, jedoch nur wenn ich den Shutdown über das Programm anstarte nicht wenn ich ganz normal über Start-Button runterfahre.

Ciao
Stefan
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

etienne77 hat geschrieben: ich binde das Skript über einen Registry-Key ein:
Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Wert "d:\skripte\python\backup_copy2.py"
habe auch schon andere Werte wie
"Cmd /c d:\skripte\python\backup_copy2.pyc probiert "
[...]
Mir wäre es sowieso lieber das Skripte liefe beim Herunterfahren, allerdings fehlen mir da die richtigen Reg-Keys um dies einzustellen.
Hallo Stefan!

Ich mache mir jetzt gar nicht die Mühe, rauszufinden wie der Reg-Key für den Shutdown heißt, da ich sowiso mal gelesen habe, dass die Programme, die beim Shutdown ausgeführt werden, nur ein paar Sekunden laufen dürfen. Windows bricht ansonsten den Prozess ab.

Ist es ein Problem, wenn dein Skript beim Starten ausgeführt wird und im Hintergrund läuft, bis es fertig ist? Bekommt das der Endbenutzer mit, ob das Skript jetzt ein paar Minuten lang im Hintergrund läuft, oder ging es nur um eine Verbesserung des Verhaltens im Hintergrund?
Der Benutzer sollte nichts davon mitbekommen, wenn die Endung deines Programmnamens ".pyw" ist.

So machte ich das auch mit anderen CMD-Dateien. Wenn ich nicht wollte, dass der Benutzer überhaupt mitbekommt, dass ein Startskript gestartet wird, dann erstellte ich ein VB-Skript, welches dann die CMD-Datei startete.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben:Ich mache mir jetzt gar nicht die Mühe, rauszufinden wie der Reg-Key für den Shutdown heißt,...
Hi!
Da hätte ich doch fast was Falsches geschrieben :wink:
Shutdown-Skripte werden nicht in der Registry-Eingetragen. Sie sind ein Teil der GroupPolicy und sind normalerweise unterhalb des Ordners %systemroot%\system32\GroupPolicy zu finden. Ich kenne die Shutdown-Skripte nur aus dem Active Directory und weiß jetzt gar nicht ob bei WinXP-Home oder Win2000 Pro ein Editor für die Policies dabei ist.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gerold hat geschrieben:weiß jetzt gar nicht ob bei WinXP-Home oder Win2000 Pro ein Editor für die Policies dabei ist.
Unter der NT Familie kann man Poledit verwenden... ist allerdings nicht exakt das gleiche...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
etienne77
User
Beiträge: 15
Registriert: Freitag 4. März 2005, 18:38
Wohnort: Baden-Württemberg

Hallo,

hab jetzt mal das Tool xecutor installiert. Und mien Backup-Skript dort beim shutdown eingbunden und die Performance ist deutlich besser als beim Hochfahren. Mit diesem Tool kann ich wirklich leben.

Ciao
Stefan
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hats du mal xecutor mit regmon überprüft, ob es nicht einfach ein REG-Eintrag erstellt?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten