Форум сайта python.su
Был слегка удивлен низкой скоростью работы сервера написанного на питоне (по крайней мере под виндой)..
Возьмем для примера скрипт:
import BaseHTTPServer
import time
from SocketServer import ThreadingMixIn
tpl = """<html>
<body>
<p><a href="/stop">stop it!</a></p>
</body>
</html>"""
class ThreadingHTTPServer(ThreadingMixIn, BaseHTTPServer.HTTPServer):
pass
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
global RUN
if self.path != "/":
if self.path == "/stop":
print "STOP!"
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write("Server stopped")
RUN = False
return
self.send_error(404, "File not found")
return
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(tpl)
#time.sleep(1)
class FBServer(ThreadingHTTPServer):
def __init__(self, *a, **k):
ThreadingHTTPServer.__init__(self, *a, **k)
self.pathHandlers = {}
def registerPathHandler(self, path, func):
self.pathHandlers.append[path] = func
PORT = 8000
RUN = True
httpd = ThreadingHTTPServer(("", PORT), Handler)
print "serving at port", PORT
while(RUN):
httpd.handle_request()
print "stop serving"
Офлайн
Ну отдача статики на python-powered-http не очень удачная затея. Если только не использовать что-нибудь типа apricot. Можно еще с twisted посоревноваться.
А вот в вопросе запуска python-приложений все не так однозначно. У меня есть данные, что есть pure-python-решения, сравнимые по производительности с apache+mod_python и nginx/lighttpd+fastcgi.
Офлайн
к теме про быстрые сервера, может будет интересно: http://softwaremaniacs.org/blog/2007/01/08/controlled-download-2/
Офлайн