同じ IP から何度もアクセスされていないかどうかをチェックするこの python cgi スクリプトがあります。すべて問題なければ、大きなファイル形式のディスク (11MB) を読み取り、ダウンロードとして返します。
動作しますが、パフォーマンスは最悪です。ボトルネックは、この巨大なファイルを何度も読み込んでいるようです。
def download_demo():
"""
Returns the demo file
"""
file = open(FILENAME, 'r')
buff = file.read()
print "Content-Type:application/x-download\nContent-Disposition:attachment;filename=%s\nContent-Length:%s\n\n%s" % (os.path.split(FILENAME)[-1], len(buff), buff)
どうすればこれをより速くすることができますか? ファイルを保持するために RAM ディスクを使用することを考えましたが、もっと良い解決策があるはずです。mod_wsgi
cgi スクリプトの代わりに使用すると役立つでしょうか? 大きなファイルをApacheのメモリ空間に保持できますか?
どんな助けでも大歓迎です。