2017-03-12 12 views
0

私は、Ubuntu 16.04でpython3 myscript.pyを使用してPythonスクリプトを実行しています。スクリプトがメモリに読み込まれているか、hddの行ごとに読み込まれて解釈されていますか?それが一度にロードされていない場合、メモリにロードされているチャンクの大きさを知っているか制御する方法はありますか?pythonスクリプトを実行するとメモリにロードされますか?

+0

スクリプトの読み込み量を制御して解決しようとしている問題を追加してください。スクリプトを読むだけでメモリが足りなくなる恐れがありますか? –

+0

すべてのコードをメモリにロードする必要があります。これはかなり明白です。私が見てきたことから、定義されている上からトップレベルの関数を呼び出すことはできないので、行ごとに関数をロードするようです。 – byxor

+0

@musically_ut私はちょうど通訳がそれをしているかと思っていた。好奇心のように、記憶がなくなる恐れがありません。 – NeoTheThird

答えて

4

メモリ全体がロードされます。最後に近い構文エラーがプログラムを直ちに中止するため、これが当てはまるはずです。それを試してみてください。

これを制御または設定する方法は必要ありません。それは確かに最も良い実装の詳細です。これに関連する問題がある場合(スクリプトがRAMよりも大きいなど)、別の方法で解決できます。

1

あなたが使用する「スクリプト」は、人間が見やすい表現です。 Pythonはそのスクリプトを開き、行を読み込み、それらをトークン化し、構文解析とastツリーを作成し、disモジュールを使って見ることができるバイトコードを出力します。

"script"はロードされていません。コードオブジェクト(生成された命令を含むオブジェクト)はロードされています。そのプロセスに直接影響する方法はありません。私は、あなたがチャンクでそれを読む必要があるほど大きなスクリプトがあることは聞いたことがない、あなたがそれを達成すれば驚くだろう。

関連する問題