Schrift
[thread]10808[/thread]

Perl / Python - was ist besser geeignet?

Leser: 2


<< >> 7 Einträge, 1 Seite
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.
ptk
 2007-11-15 23:31
#102469 #102469
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Perl-Threads sind nicht gerade das gelbe vom Ei. Sie sind recht groß, weil für jeden Thread Teile des Interpreters geclonet werden müssen. Aber für deine Aufgabenstellung brauchst du gar keine Threads, einfaches Event-basiertes Handling mittels select() sollte vollkommen ausreichen. Für dein konkretes Problem gibt es schon das Modul CPAN:LWP::Parallel im CPAN.
lichtkind
 2007-11-15 23:40
#102470 #102470
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Wenn dir Ruby liegt vom syntax näher an Perl als Python wenn es dir also gefallen wäre es wohl deine Wahl. auch wenn Threads natürlich auch in Perl noch nicht optimal sind, so doch besser als in Python ,wenn ich ein Papier das ich die Woche las richtig verstanden hab. Versteh bitte auch das hinter Perl und python völlig verschiedene Grundgedanken stehen auch wenn sich Sprachen technisch ähneln.

Python ist für leute die daran glauben, daß es besser ist zu einfachheit und optischer übersichtlichkeit gezwungen zu werden, auch wenn dies letztlich nicht groben scheiss verhindern kann. Wenn du anstatt lieber die Freiheit haben willst aus einer riesigen werkzeugkiste auswählen zu können, und wesentlich einfacher mal scheiss bauen zu können bist du hier herzlich willkommen.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
pq
 2007-11-16 10:20
#102475 #102475
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
lichtkind+2007-11-15 22:40:39--
Wenn dir Ruby liegt vom syntax näher an Perl als Python wenn es dir also gefallen wäre es wohl deine Wahl.

bitte was?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
lichtkind
 2007-11-16 14:02
#102479 #102479
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Hab ich wohl wieder ne menge geträumt beim schreiben.

Wollte sagen daß Ruby vom Syntax näher an Perl als Python angelehnt ist und das wenn es ihm so liegt wie er schreibt es wohl eher was für ihn wäre.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
GwenDragon
 2007-11-16 19:48
#102493 #102493
User since
2005-01-17
14747 Artikel
Admin1
[Homepage]
user image
bei lichtkind ist wohl die Punkt- und Kommataste defekt.

Bitte keine Bandwurmsätze ohne Satzzeichen, sonst verstellt es den Sinn beim Lesen.
lichtkind
 2007-11-16 21:51
#102495 #102495
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
nein ich war übermüded, es war wirklich halb fünf
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 7 Einträge, 1 Seite



View all threads created 2007-11-15 23:02.