Seite 1 von 1

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

Verfasst: Mittwoch 15. Juli 2009, 17:10
von Dauerbaustelle
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...

Verfasst: Mittwoch 15. Juli 2009, 17:16
von Leonidas
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.

Verfasst: Mittwoch 15. Juli 2009, 17:26
von Dauerbaustelle
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)?

Verfasst: Mittwoch 15. Juli 2009, 17:49
von Leonidas
Was spricht gegen einen Webserver? Alternativ kannst du natuerlich mal den Paste-WSGI-Webserver versuchen, der ist vermutlich schneller als der den du nutzt.

Verfasst: Mittwoch 15. Juli 2009, 21:43
von Defnull
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.

Verfasst: Mittwoch 15. Juli 2009, 23:01
von apollo13
Werkzeug und mod_wsgi unterstützen es…