3
私は単純なFlaskアプリケーションを書いて、そのメモリ使用量をテストします。Flaskで大きなテキストファイルを読み込むのがメモリを占有しないのはなぜですか?
ここにコードがあります。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
with open("file.txt", "r") as fd:
text = fd.read()
return "Hello World!"
if __name__ == "__main__":
app.run(host="0.0.0.0")
file.txt
は、このコマンドで作成され、そのサイズは50MBです。
base64 /dev/urandom | head -c 50000000 > file.txt
次のコマンドで実行して:
python3 test.app
file.txt
を読まずに実行している場合は、メモリ使用量が18448キロバイトです。
file.txt
を実行している場合、メモリ使用量は18988KBです。
このファイルは50MBですが、メモリ使用量は540KBしか増加しません。私はPythonの仕組みを理解していません。
また、フラスコの表示が要求されたときにのみファイルが読み込まれることを指摘します。それはかなり簡単ですが、OPはPython呼び出しのみを記述しているので、ビューに照会することさえできないかもしれません。 –
@ImanolLuengoメモリが少し増えたため(PythonはGC中にすぐに割り当てられたすべてのメモリを解放しないので)、私はそれらがそれを暗示していると仮定しました。 – davidism