• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Leistung von Perl/CGI/C-Skripts

Clawg

Guest
In welchem Rahmen kann man denn Perl/CGI bzw. auf CGI kompilierte C Skripte/Programme relativ zu PHP (und wie PHP relativ zu z.B. Java oder C++) bezueglich Geschwindigkeit und Platzverbrauch einordnen?
Mit Geschwindigkeit meine ich primaer nicht die Zeit zum Aufruf, sondern die Berechnungsgeschwindigkeit fuer groessere Aufgaben, d.h. z.B. Zahlenjonglierereien mit groesseren Matrizen und Arrays (10-100mb Speicherverbrauch).
 

Clawg

Guest
naja, habe mich mit CGI noch nie beschaeftigt, das ist ja das Problem :|
Sonst werd ichs erstmal in php schreiben, vielleicht langts ja :o
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
kommt auf deinen server (anbieter?) an, ob ders überhaupt zulässt dass du applikationen laufen lässt die 80-100mb verbrauchen und inwieweit der cpu zeit rausrückt. normales phpscript hat ja ne max-execution time von 90 oder 180sek soweit ich mich erinnere
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
naja das kannst ja mit der ini mal eben abschalten.
aber kommt schon auf php einbindung an.

php 5 über fastcgi > als module > über normal cgi
afaik

und dann noch ob irgendwie nen zend optimizer / accelerator drin ist oder sowas
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
schon aber da ist die frage inwieweit die anbieter das zulassen ;)
 

Clawg

Guest
Anbieter ist weniger das Problem, das ist mit ein paar Euronen/Monat erledigt. Mehr interessiert mich die Frage, in welche Sprache ich meine Zeit investieren soll :)

Naja, um ein paar Tage Testen&Benchmarking werd ich wohl nicht rumkommen :o
 
Mitglied seit
15.05.2003
Beiträge
11.307
Reaktionen
8
Ort
Fortuna 1895 Düsseldorf
perl ist auf jedenfall erste wahl was den umgang mit grossen strings angeht. es ist, wenn man bereits programmieren kann, einfach zu lernen und es macht zu allem überfluss auch noch spass. es gibt zig module für perl, niemand muss das rad neuerfinden. wenn man eine gewisse problemstellung hat, schaut man erstmal auf cpan.org nach, welches modul möglicherweise genau das hat, was man braucht und installiert es nach. neben zahlreichen cgi modulen ist perl auch auf betriebssystem ebene vor allen unter *nix eine äussert hilfreiche sprache. mit wenigen, dahingerotzen zeilen erreicht man den gleichen effekt wofür c programmierer seiten langen code entwickeln müssen. ich bin persönlich zwar kein profi in perl aber es gibt zahlreiche anwendungsmöglichkeiten und schnittstellen, perl ist nicht umsonst eine gluesprache. sieht nicht schön aus ist aber sehr effektiv. zu benchmark kann ich leider nix sagen aber nen buchtip hab ich noch, geht btw auch auf cgi anwendungen ein:

http://www.amazon.de/Grundwissen-Pe...580744/ref=pd_sim_b_img_5/028-7101588-7836525
 
Mitglied seit
21.01.2001
Beiträge
3.078
Reaktionen
0
Ich kann nur bestaetigen, dass es sich lohnt in Perl einzuarbeiten.

Danach war es relativ einfach, PHP Code zu verstehen und Ruby Zeugs zu skripten.

Wobei mir (komplexe) Regexp immernoch sehr abstrus vorkommen.
 

RRA^StArFiRe

Guest
perl ist doch schon bissl älter...
die richtung geht wohl eher in php oder python.
 
Mitglied seit
15.05.2003
Beiträge
11.307
Reaktionen
8
Ort
Fortuna 1895 Düsseldorf
du gerade für python gibts bei perl tolle module. perl kann eine ganze menge, sicherlich ist es nicht für alles geeignet aber vor alem die flexibilität ist das, was perl ausmacht. es kann nicht schaden, es zu können ;)
 

Annihilator

Techniker
Mitglied seit
28.09.2002
Beiträge
7.821
Reaktionen
2.197
Ich habe zwar nicht exzessiv getestet und habe keine Zahlen, aber mir kam es eindeutig so vor, als wäre C viel schneller als Scriptsprachen wie Perl und PHP. Allein beim Durchlaufen von Schleifen. Gerade sowas lässt sich ja recht schnell testen in allen drei Sprachen.
Nachteil bei Perl: OOP suckt ziemlich. PHP über FastCGI sollte da genauso funktionieren.
 

voelkerballtier

Coverage, Staff, Coding
Mitglied seit
01.12.2003
Beiträge
1.603
Reaktionen
0
Original geschrieben von Clawg
In welchem Rahmen kann man denn Perl/CGI bzw. auf CGI kompilierte C Skripte/Programme relativ zu PHP (und wie PHP relativ zu z.B. Java oder C++) bezueglich Geschwindigkeit und Platzverbrauch einordnen?
Mit Geschwindigkeit meine ich primaer nicht die Zeit zum Aufruf, sondern die Berechnungsgeschwindigkeit fuer groessere Aufgaben, d.h. z.B. Zahlenjonglierereien mit groesseren Matrizen und Arrays (10-100mb Speicherverbrauch).
also erstmal ist c/c++/c#/java >>>>>>>>>>>>>>>> php/perl/python (im sinne der geschwindigkeit)
skriptsprachen sind locker ein faktor 1000 langsamer

zu den skriptsprachen untereinander kann ich dir leider auch nix sagen, aber wenn du die möglichkeit hast python einzusetzen und auch zusätzliche module selbst zu installieren, würde ich dir zu python + numpy, scipy raten - da kannst du aus python massig matrixoperationen benutzen, die in den modulen vorkompiliert sind, also rasend schnell laufen

ansonsten wären ein paar mehr infos was denn genau gemacht werden soll hilfreich :)
 

The_Company

Guest
Oh, es ist wieder Zeit unfundierte Meinungen in den Raum zu werfen. Das macht ihr auch sehr gut. Ich moechte mal die C Implementation sehen, die Programme locker 1000x schneller macht, wenn ich sie von Python porte.

Wenn man Benchmarks braucht, kann man sich
http://shootout.alioth.debian.org antun. Macht haufenweise Spass, aber bitte darauf achten, was man da vergleicht, bevor man in Foren geht um rumposaunt.

Aus Erfahrung wuerde ich sagen, man soll die Programmsprache nehmen, mit der man am besten klar kommt, solange sie fuer die Aufgabe geeignet ist. Denn am meisten leiden Programme unter dummen Algorithmen, und die programmiert man selbst. Also einfach C zu benutzen, weil dann alles schneller wird, ist mal ne fromme Hoffnung.

Und zuguterletzt moechte ich noch einmal alle die ganz laut auslachen, die Perl fuer ne tolle Programmiersprache halten.
 
Mitglied seit
15.05.2003
Beiträge
11.307
Reaktionen
8
Ort
Fortuna 1895 Düsseldorf
Original geschrieben von The_Company

Und zuguterletzt moechte ich noch einmal alle die ganz laut auslachen, die Perl fuer ne tolle Programmiersprache halten.

das hängt natürlich ganz klar vom einsatzzweck ab aber ich werde mich deiner fundierten und erhabenen meinung nicht weiter in den weg stellen. gut das es leute wie dich gibt, die im glanze des lichtes noch heller strahlen.


http://books.google.com/books?id=cL...ts=gJm985Y5M6&sig=VLwvXVvHlAr24Cww0SHswyQYrrA
 

voelkerballtier

Coverage, Staff, Coding
Mitglied seit
01.12.2003
Beiträge
1.603
Reaktionen
0
Original geschrieben von The_Company
Oh, es ist wieder Zeit unfundierte Meinungen in den Raum zu werfen. Das macht ihr auch sehr gut. Ich moechte mal die C Implementation sehen, die Programme locker 1000x schneller macht, wenn ich sie von Python porte.

Wenn man Benchmarks braucht, kann man sich
http://shootout.alioth.debian.org antun. Macht haufenweise Spass, aber bitte darauf achten, was man da vergleicht, bevor man in Foren geht um rumposaunt.

Aus Erfahrung wuerde ich sagen, man soll die Programmsprache nehmen, mit der man am besten klar kommt, solange sie fuer die Aufgabe geeignet ist. Denn am meisten leiden Programme unter dummen Algorithmen, und die programmiert man selbst. Also einfach C zu benutzen, weil dann alles schneller wird, ist mal ne fromme Hoffnung.

Und zuguterletzt moechte ich noch einmal alle die ganz laut auslachen, die Perl fuer ne tolle Programmiersprache halten.

naja ich hab zB mal in python die zahlen 1-100.000 (könnte auch 1.000.00 gewesen sein oder so) addiert. Einmal mit python for schleife und einmal mit numpy ein array mit werten von 1-100.000 drin erzeugen + sum anwenden.

tja und letzteres wurde quasi sofort ausgeführt (unmerkliche rechenzeit) während ersteres so ca 10 sekunden dauerte....
 

Clawg

Guest
Re: Re: Leistung von Perl/CGI/C-Skripts

Original geschrieben von voelkerballtier
ansonsten wären ein paar mehr infos was denn genau gemacht werden soll hilfreich :)

Ich baue (bzw. moechte bauen ::]: ) momentan eine webbasierte Umsetzung meines Programms 'Evolution Forge' (evolutionaere Algorithmen zur Berechnung einer optimalen Baufolge :) ), d.h. eine eher rechenintensive Geschichte.
Soweit ich die Beschreibung von CGI verstanden habe, kann ich kompilierte C-Skripte auf meinem Server (momentan ein nicht-root Server) laufen lassen, die Kompilierung an sich stellt sich jedoch (soweit ich das verstanden habe) als Problem heraus, ich muesste ja fuer das selbe Zielsystem kompilieren (moeglich ist das schon, aber relativ umstaendlich ohne root-Zugriff).
Clientseitig mit Java habe ich mir auch schon ueberlegt, allerdings gibt es da mehrere Probleme bezueglich Sicherheit der Daten, des Codes und zusaetzlichem Programmieraufwand :o

Nach den Benchmarks ( :wave: The_Company ) zu urteilen ist PHP doch noch relativ schnell und der einzige wesentliche Unterschied dort besteht, wo die Programme vorkompiliert werden (nur ~20x langsamer als ein C Programm). Und da ich die Ergebnisse in einer Datenbank zwischenspeichern kann und bei spaeteren Anfragen z.T. wiederverwenden kann, wird es fuer's erste hoffentlich reichen, wenn ich es erst einmal in PHP inklusive Schnittstelle baue und dann den kritischen Teil spaeter in C auslagere. Langfristig werde ich wohl einen eigenen Rootserver dafuer aufstellen und es entweder in Java oder C++ dort laufen lassen :o

@voelkerballtier:
Sicher, dass die Schleife in dem Fall nicht einfach wegoptimiert wurde und tatsaechlich 100.000 Operationen durchgefuehrt wurden?
 

voelkerballtier

Coverage, Staff, Coding
Mitglied seit
01.12.2003
Beiträge
1.603
Reaktionen
0
Re: Re: Re: Leistung von Perl/CGI/C-Skripts

Original geschrieben von Clawg

@voelkerballtier:
Sicher, dass die Schleife in dem Fall nicht einfach wegoptimiert wurde und tatsaechlich 100.000 Operationen durchgefuehrt wurden?

die schleife in python kann nicht wegoptimiert wurden sein weil kein compiler zum wegoptimieren da ist
die schleife in c kann nicht wegoptimiert wurden sein, weil der code (da modul) schon vorkompiliert war, zur kompilierzeit also noch nicht feststand, dass ich nur feste zahlen addiere

zu den benchmarks:
also da: http://shootout.alioth.debian.org/sandbox/benchmark.php?test=mandelbrot&lang=all (Faktor 100)
da: http://shootout.alioth.debian.org/sandbox/benchmark.php?test=recursive&lang=all (Faktor 400)
und da: http://shootout.alioth.debian.org/sandbox/benchmark.php?test=spectralnorm&lang=all (Faktor 300)
ist PHP deutlich langsamer als C++. Wo kommen deine 20% her (oder worauf sollten die sich beziehen?)

€ sorry, verlesen - du hattest ja 20x geschrieben
 
Oben