Hallo zusammen,
ich beschäftige mich gerade mit der Frage ob ich einen bestehenden XML-RPC Server in Sachen Datenübertragung beschleunigen kann oder ob dies garnicht mehr nötig/möglich ist.
Ich habe den Server unter Python 2.5 laufen und habe einen Anwendungsfall bei dem u.U. größere Datenmengen (~100MB über ein 100Mbit LAN) übertragen werden müssen. Die Performance ist hinnehmbar, würde sie doch gerne optimieren.
Ich habe gelesen das es zur Python 2.2 Zeit ein Modul bei Sourceforge gab mit der Bezeichnung "fast xmlrpc". Wisst ihr ob es einen Nachfolger von diesem Modul für Python 2.5 gibt oder ist dies vielleicht garnicht mehr notwendig?
Gibt es vielleicht Konfigurationsmöglichkeiten um die mitgelieferten xmlrpclib von Python für größere Datenübertragungen zu optimieren?
Vielen Dank schonmal
Gruß Zap
Fast XML-RPC für Python 2.5
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Es ist... schwer. XML-RPC benutzt zur Übertragung ein Textformat, die Daten müssen also erstmal in XML serialisiert werden. Wenn du wirklich schnellere Transfers haben willst, dann solltest du ma prüfen, ob du mit CORBA oder Ice nicht schneller bist (zum Thema IPC habe ich einen Tag bei Simpy, schau mal rein). Ich denke, dass möglicherweise YAML-RPC (*hust*) oder JSON-RPC schneller wären als XML-RPC - aber auch nicht viel.Zap hat geschrieben:ich beschäftige mich gerade mit der Frage ob ich einen bestehenden XML-RPC Server in Sachen Datenübertragung beschleunigen kann oder ob dies garnicht mehr nötig/möglich ist.
Das Modul gibt es immer noch, es heißt py-xmlrpc und sollte auch noch mit Python 2.5 funktionieren.Zap hat geschrieben:Ich habe gelesen das es zur Python 2.2 Zeit ein Modul bei Sourceforge gab mit der Bezeichnung "fast xmlrpc". Wisst ihr ob es einen Nachfolger von diesem Modul für Python 2.5 gibt oder ist dies vielleicht garnicht mehr notwendig?
Nein. Was erwartest du denn? Dass die xmlrpclib standardmäßig auf "slow" eingestellt ist, nur um Leute zu ärgern?Zap hat geschrieben:Gibt es vielleicht Konfigurationsmöglichkeiten um die mitgelieferten xmlrpclib von Python für größere Datenübertragungen zu optimieren?

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Leonidas hat geschrieben:Nein. Was erwartest du denn? Dass die xmlrpclib standardmäßig auf "slow" eingestellt ist, nur um Leute zu ärgern?Zap hat geschrieben:Gibt es vielleicht Konfigurationsmöglichkeiten um die mitgelieferten xmlrpclib von Python für größere Datenübertragungen zu optimieren?


Danke schonmal für die ganzen Tipps. Werde mir die Möglichkeiten mal genauer anschauen.
Wenn dir die Performance so wichtig ist, dann solltest du solche Datenmenge direkt über Sockets verschicken, um dir den ganzen Overhead des RPC Protokolls zu sparen. Das geht natürlich zu Lasten des Programmierkomforts, aber das ist nun mal so, wenn man optimieren will.Zap hat geschrieben:Ich habe den Server unter Python 2.5 laufen und habe einen Anwendungsfall bei dem u.U. größere Datenmengen (~100MB über ein 100Mbit LAN) übertragen werden müssen. Die Performance ist hinnehmbar, würde sie doch gerne optimieren.
Ne, das steht nicht zur Diskusion, so einen Aufwand brauche ich da auch nicht betreiben.
Die ganze Sache soll schon weiter über XMLRPC (http) funktionieren.
Sonst hätte ich alternative eh schon ftp oder ähnliches als Ausweichprotokoll verwendet um die Datenübertragung umzusetzen.
Ich werde einfach mal gucken ob ich hier oder da ein paar Prozent rauskitzeln kann. Wenn nicht, ist auch nicht schlimm.
Die ganze Sache soll schon weiter über XMLRPC (http) funktionieren.
Sonst hätte ich alternative eh schon ftp oder ähnliches als Ausweichprotokoll verwendet um die Datenübertragung umzusetzen.
Ich werde einfach mal gucken ob ich hier oder da ein paar Prozent rauskitzeln kann. Wenn nicht, ist auch nicht schlimm.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Schon py-xmlrpc ausprobiert? Ich wäre in Vergleichswerten gegenüber dem mitgelieferten Server interessiert.Zap hat geschrieben:Ich werde einfach mal gucken ob ich hier oder da ein paar Prozent rauskitzeln kann. Wenn nicht, ist auch nicht schlimm.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Also cich habe das py-xmlrpc Modul mal ausprobiert und konnte keine Zeitunterschiede fesstellen. Was mich allerdings nicht verwundert hat, da meine Anwendung nicht in die von py-xmlrpc überschriebenen Methoden gelandet ist. Der dort überschriebene als Flinker Geselle versprochene Marshaller blieb Arbeitslos und bekam nichts zu tun.
Das Modul wurde aber erfolgreich in den Programmablauf mit eingebunden, scheint aber nicht 100% kompatibel zu sien.
Naja, ich habe die ganze sache mit Komprimierungen und ähnlichen verbessern können. Das reicht fürs erste.
Das Modul wurde aber erfolgreich in den Programmablauf mit eingebunden, scheint aber nicht 100% kompatibel zu sien.
Naja, ich habe die ganze sache mit Komprimierungen und ähnlichen verbessern können. Das reicht fürs erste.