Frage von fliegenpilze, 29

Wäre es sinnvoll eine suchmaschine ganz oder hauptsächlich in Python zu schreiben?

Antwort
von TeeTier, 22

Jain. :)

Wenn es sich nur um deine eigene kleine Testsuchmaschine handelt, die auf einem einzigen Rechner läuft, kommst du mit Python, Perl oder Ruby schneller ans Ziel, als mit C oder C++.

Allerdings macht es schon einen massiven Performance-Unterschied, wenn du von Anfang an Low-Level programmierst und deine HTTP-Lib selber entwirfst. (Ganz zu schweigen davon, dass du dabei mehr lernst.)

Ich hatte hier vor wenigen Tagen etwas ähnliches zu einer anderen Frage geschrieben, und hatte an dieser Stelle auch erwähnt, dass ein "Baugleicher" Crawler einmal in Python implementiert maximal 8000 parallele Verbindungen bewältigt, die C-Version hingegen etwas über 10000. Das 25% mehr Performance ohne merklichen Paketverlust.

Trotzdem ... für Anfänger ist Python auf jeden Fall zu empfehlen, einfach um die Grundlagen von Protokollen, Parallelität, Abläufen, Parsern, etc. zu verstehen. Außerdem bringt Python viel mehr mit, als reines C.

Aber sei dir darüber im Klaren, dass selbst atomar aussehende Operationen in Python einen riesigen Schwanz an C-Funktionen hinter sich herziehen. So ist "text.strip()" oder "text[a:b]" zwar sehr praktisch, und sieht kurz aus, macht intern aber verdammt viel Arbeit, wobei nach jedem einzelnen Schritt auf Fehler überprüft werden muss. Die Programmierung in C dauert zwar deutlich länger, da man alles per Hand machen muss, aber du kannst Prozesslokale Puffer wiederverwenden, wobei alleine schon dieser eine kleine Punkt verdammt viel Speicher und Rechenzeit spart.

Deine Request-Header kannst du z. B. unter Linux bei der C-Programmierung atomar mit writev() an einen Socket senden, unter Python geht das nicht so atomar, und du musst dir erst einen Puffer zusammen basteln, der dann alles in einem Rutsch intern mit write() sendet.

Fazit:

Anfänger und kleine Testsuchmaschinen: Python

Profis und verteilte Produktivsysteme: C oder C++

Viel Spaß! :)

Antwort
von wyoxx, 17

Ja, viele Suchmaschinen sind ausschließlich in Python geschrieben. So auch meine eigene :).

Kommentar von fliegenpilze ,

ok danke wie heißt deine denn wen ichh fragen darf??

Kommentar von wyoxx ,

Die ist nur local, also nur auf meinem Laptop, ich hab sie auch einfach nur SM (für Suchmaschine) genannt. Also nichts wie Google oder so. Auf Udacity gibt's ein paar gute Tutorials dazu, kannst ja mal ausprobieren :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten