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…