Thread Perl / Python - was ist besser geeignet?
(6 answers)
Opened by DanielH at 2007-11-15 23:02
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. |