Thread Perl / Python - was ist besser geeignet? (6 answers)
Opened by DanielH at 2007-11-15 23:02

DanielH
 2007-11-15 23:02
#102467 #102467
User since
2007-11-15
54 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich bin gerade am überlegen, ob ich Perl oder Python lernen soll.

Bis gestern war ich dabei ein Script in php zu schreiben, bis ich leider
gemerkt habe, dass php viel zu langsam ist (bzw. mir ist klar geworden
das ich multithreading brauche, was es in php nicht ohne weiteres gibt).

Das Script soll eine Liste von Proxyservern und dazugehörigen Ports
nehmen, auf Erreichbarkeit und Anonymität prüfen & abspeichern. Da es
immer ein wenig dauert, bis die Verbindung steht bzw. bis ein time-out
kommt, dauert es "eine Weile", bis man mit php z. B. 30.000 Proxys
überprüft hat (nämlich bis zu 250 Stunden, bei 30 sec bis time-out).


Deshalb "muss" ich jetzt eine andere Script-/Programmiersprache lernen,
welche multithreading ermöglicht.


Neben Python und Perl war noch Ruby in der engeren Auswahl, was mir
extrem gefallen hat (ich find die Syntax extrem gut).

Leider gibt es dort aber anscheinend kein gescheites multithreading,
weswegen ruby wegfällt. Hier ein Zitat dazu:

"Erstens: Ruby verwendet sogenannte Green Threads [...]
Das Problem sind jetzt nicht die Green Threads an sich [...], sondern das
Ruby keinen Mechanismus besitzt um seine Threads auf mehrere Cores/
Prozessoren zu verteilen. Wuerde Ruby native Threads verwenden, dann
wuerde sich der Kernel darum kuemmern.

Zweitens: Ruby verwendet einen Time-Slice-Scheduler fuer Threads. Das
heisst das jeder Thread ca. 10ms zur verfuegung hat, um sein Zeug zu
erledigen, danach kommt der naechste Thread dran. Auch wenn der Thread
weniger als 10ms braucht. (Mehr Details hier)

Drittens: Sobald C-Code in einer Extension ausgefuehrt wird (bzw.
allgemein kompilierter Code), blockiert der Interpreter die weitere
Ausfuehrung von Ruby-Code, bis der Code der Extension fertig ist."

Quelle: http://forum.ruby-portal.de/viewtopic.php?p=33950&...


Meine erste Frage ist jetzt, ob Perl auch nur solche Threads ermöglicht,
oder ob ich damit mehrere Proxys gleichzeitig überprüfen kann (1000
gleichzeitige Threads wären ideal ).


Außerdem interessiert mich, welche Scriptsprache eurer Meinung nach
effizienter ist (und mit effizient meine ich schneller in der Abarbeitung der
Aufgaben).

Schon mal Danke für's Lesen und an alle die mir bei meiner Entscheidung
helfen wollen.

View full thread Perl / Python - was ist besser geeignet?