Warum ist (das Ausliefern großer Dateien in) WSGI so lahm?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Warum ist (das Ausliefern großer Dateien in) WSGI so lahm? Das sagts eigentlich schon. Wollte das nur mal wissen, weil mir das beim Entwickeln von WSGI-Apps so langsam auf den Keks geht. Klar, später lässt man das den Webserver machen. Aber während der Entwicklungszeit nicht...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Weil Python das erstmal einlesen muss und dann zum Browser ausliefern muss. Da die Entwicklungsserver nicht wirklich schnell sind, dauert das eben. Zumal die Webserver da direkt OS/Aufrufe wie ``sendfile()`` nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Naja, aber das einlesen dauert < 1 Sekunde. Und die Kommunikation zwischen Python und Server kann doch nicht sooo langsam sein...?

Hm, irgendwelche Alternativen (außer nem Webserver)?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was spricht gegen einen Webserver? Alternativ kannst du natuerlich mal den Paste-WSGI-Webserver versuchen, der ist vermutlich schneller als der den du nutzt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Es geht auch schneller: http://www.python.org/dev/peps/pep-0333 ... e-handling
Some operating environments provide special high-performance file- transmission facilities, such as the Unix sendfile() call. Servers and gateways may expose this functionality via an optional wsgi.file_wrapper key in the environ.
Aber das implementiert so gut wie kein WSGI Gateway und nur wenige Frameworks. Paste zum Beispiel tut das nicht.

Info am Rande: Bottle unterstützt wsgi.file_wrapper, wenn es der Gateway auch tut.
Bottle: Micro Web Framework + Development Blog
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Werkzeug und mod_wsgi unterstützen es…
Antworten