Hallo,
ich habe zwei Fragen:
1.) Wenn ich längere Schleifen laufen lasse, habe ich 100% Prozessorlast. Wie kann ich dies verhindern?
2.) Ich möchte unter Linux gerne eine C-Funktion über Python aufrufen. Ist dies irgendwie möglich? Wenn ja, wie?
Grüße,
VoLANo
100% CPU vermeiden & C-Funktionen aufrufen
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi VoLANo,
zu 1.: Da gibt es mehrere Möglichkeiten, 1. Du kannst zwischendurch mal sleep aufrufen, was aber Deine Schleife ausbremsen dürfte, ansonst kannst Du noch Dein Pythonscript mit einem nice -15 script.py starten, dann wird das Script nur dann ausgeführt, wenn keine wichtigeren Sachen zu machen sind, zwar geht auch dann die Prozessorauslastung hoch, aber es wird eben nur die ohnehin freie Prozassorkapazität verwendet.
zu 2.: Dazu musst du in C eine Interfacefunktion schreiben, welche die Python-Argumente in C-Datentypen konvertiert, die Prozedur aufruft und dann das Ergebnis wieder in ein Pythonobjekt wandelt und an die aufrufende Funktion zurückgibt. Das ganze wird auf der Pythonwebseite unter http://www.python.org/doc/faq/extending.html beschrieben. Oft sind aber die Funktionen/Methoden aus Python um einiges schneller als selbe gecodete C-Sachen.
Gruß
Dookie
zu 1.: Da gibt es mehrere Möglichkeiten, 1. Du kannst zwischendurch mal sleep aufrufen, was aber Deine Schleife ausbremsen dürfte, ansonst kannst Du noch Dein Pythonscript mit einem nice -15 script.py starten, dann wird das Script nur dann ausgeführt, wenn keine wichtigeren Sachen zu machen sind, zwar geht auch dann die Prozessorauslastung hoch, aber es wird eben nur die ohnehin freie Prozassorkapazität verwendet.
zu 2.: Dazu musst du in C eine Interfacefunktion schreiben, welche die Python-Argumente in C-Datentypen konvertiert, die Prozedur aufruft und dann das Ergebnis wieder in ein Pythonobjekt wandelt und an die aufrufende Funktion zurückgibt. Das ganze wird auf der Pythonwebseite unter http://www.python.org/doc/faq/extending.html beschrieben. Oft sind aber die Funktionen/Methoden aus Python um einiges schneller als selbe gecodete C-Sachen.
Gruß
Dookie