我有一些相对较大的 .js 文件(flot 和 jquery)与 Python BaseHTTPServer 一起使用。
目前我正在使用:
with open(curdir + sep + self.path, 'rb') as fd:
self.wfile.write(fd.read())
但它相当慢,甚至从同一台机器加载文件(> 秒来获取这些文件)。我想这是将整个文件读入 RAM,然后从中写入,有没有办法可以加快速度?
我有一些相对较大的 .js 文件(flot 和 jquery)与 Python BaseHTTPServer 一起使用。
目前我正在使用:
with open(curdir + sep + self.path, 'rb') as fd:
self.wfile.write(fd.read())
但它相当慢,甚至从同一台机器加载文件(> 秒来获取这些文件)。我想这是将整个文件读入 RAM,然后从中写入,有没有办法可以加快速度?
实际上,您的代码会在将所有内容发送给客户端之前对其进行缓冲。要改为流式传输响应,请查看SimpleHTTPServer
它是如何实现的。
它使用shutil.copyfileobj
, 正是这样做的。利用:
import shutil
shutil.copyfileobj(fd, self.wfile)