Thread Vergleiche mit 0, PHP gegen Perl und anderes... (71 answers)
Opened by rosti at 2012-12-29 13:07

topeg
 2012-12-29 13:28
#164481 #164481
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Du bist nicht die einzige, die sich so was wünscht. Aber die interne Struktur von Perl macht da Probleme.

Perl hat Intern kein Rechtemanagement. Man kann mehrere Interpreterinstanzen in einem Prozess nicht von einander Isolieren. Bei String-eval und co. ist das auch kein Problem. Die Instanzen sollen ja gerade kommunizieren können. Das ist ein enormes Problem, mit dem auch PHP und andere Interpreter kämpfen. So weit ich weiß können manche JavaVM so was.
Die erweiterten Speichermanagement Möglichkeiten moderner Prozessoren könnten hier helfen. Sie erlauben es Threads auf einer sehr niedrigen Ebene voneinander zu trennen. Das müsste eingebaut werden. Speichermanagement ist auch nichts was man an einem Wochenende lernt, auch weil jedes System das anders handhabt. Und mit Threads gibt es noch ein weiteres Problem. Zwar kann man Perl Threadsave kompilieren. Es wird dafür dann aber auch langsamer. Zudem sind nicht alle XS-Module Threadsave. Auch beim Caching gibt es Probleme. Hier kann man nur den gesamten Interpreter sichern und wieder herstellen. Etwas wie "perlcc -B" wäre auch möglich und mal nicht schwer umzusetzen.
Wollte man das ganze "richtig" Umsetzen müsste man einen ganz neuen Interpreter schreiben.

Ein anderer weg wäre das was man hat gut zu nutzen. Ein Apache Modul, das die Fähigkeiten besitzt die du dir wünschst, würde zur Zeit auf etwas FastCGI artiges hinaus laufen. Es gibt Möglichkeiten mehr Geschwindigkeit aus dem ganzen zu holen. Eine Kommunikation über Socket ist Verhältnis mäßig langsam und bei einer Perl - Perl Kommunikation müssen die Daten nur begrenzt serialisiert werden. Eine Shared-Memory Kommunikation wäre sinnvoll. Unter Linux ist das mittlerweile auch ohne umfangreiches kopieren über den Kernelspace möglich sofern sie alle zum selben Benutzer gehören.

Ich denke das es möglich wäre etwas "mod_perl"-Artiges zu schreiben, das vieles von dem kann, was wir uns so wünschen. Doch der Aufwand wäre enorm und es wäre ganz anders als das was es jetzt schon gibt. Einige Abläufe und Betriebsphasen müssten anders Strukturiert werden. Das ist nichts womit man so ohne weiteres in seiner Freizeit anfängt.

View full thread Vergleiche mit 0, PHP gegen Perl und anderes...