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