Seite 1 von 1
100% CPU vermeiden & C-Funktionen aufrufen
Verfasst: Donnerstag 13. November 2003, 16:33
von VoLANo
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
Verfasst: Donnerstag 13. November 2003, 18:18
von Dookie
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
ctypes
Verfasst: Donnerstag 20. November 2003, 02:33
von strogon14
zu 2) Oder schau Dir mal das Modul 'ctypes' an. Google ist dein Freund.
Chris