我有一些相对较大的.js文件(flot和jquery)与Python BaseHTTPServer一起提供。
目前我正在使用:
with open(curdir + sep + self.path, 'rb') as fd:
self.wfile.write(fd.read())
但它相当慢,甚至加载来自同一台机器的文件(>一秒钟来获取这些文件)。我想这是将整个文件读入RAM,然后从中写入,有没有办法让我加快一点?
答案 0 :(得分:2)
实际上,您的代码会在将所有内容发送到客户端之前对其进行缓冲。要转发响应,请查看SimpleHTTPServer
does it的方式。
它使用shutil.copyfileobj
,它就是这样做的。使用:
import shutil
shutil.copyfileobj(fd, self.wfile)