質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

8248閲覧

Pythonプログラムによって生成されたキャッシュを、プログラムが実行中でも安全に削除できる方法はありますか?

abea

総合スコア32

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/29 11:15

編集2020/09/29 11:16

あるコンピュータ上に2つのPythonプログラム 「write_file.py」 「read_file.py」が走っており、write_file.pyは1回の実行で大量のファイルを下の処理をループさせることで生成し、

Python

1f = open(filename_i, "w") 2f.write("test") 3f.close()

read_file.pyではこの生成されたファイルを読み込む処理を行うとします。write_file.pyは決まった時間間隔で1回実行され、read_file.pyは常に走っています。

Python

1f = open(filename_i, "r") 2text = f.read() 3f.close()

そこで質問なのですが、
この時write_file.pyによって大量のキャッシュが生成されてしまうので (vmstatのcacheの値が数GBあるレベル)これをwrite_fileが終了した段階で
/proc/sys/vm/drop_caches
で削除した場合、その時裏で走っているread_file.pyに影響を与え、メモリエラーなどで終了してしまう可能性はあるのでしょうか?

また、もし影響を与え終了させてしまうならば例えばwrite_file.pyによって確保されているキャッシュのみ削除するなど、片方のプログラムに影響を与えることなく安全にキャッシュを削除する方法はあるのでしょうか?

教えてくださると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

記述から、OSはLinuxだと推定して回答します。Pythonは関係無い質問です。

結論としては、動作中のプログラムには影響を与えません。

エビデンスとして、権威ありそうなサイトを引用します。

https://linux-mm.org/Drop_Caches

This is a non-destructive operation and will only free things that are completely unused. Dirty objects will continue to be in use until written out to disk and are not freeable. If you run "sync" first to flush them out to disk, these drop operations will tend to free more memory.

(DeepL翻訳)
これは非破壊的な操作であり、完全に使用されていないものだけが解放されます。ダーティなオブジェクトは、ディスクに書き出されるまで使用され続け、自由にすることはできません。最初に "sync" を実行してディスクに書き出すと、これらのドロップ操作はより多くのメモリを解放する傾向があります。

投稿2020/09/29 13:17

toast-uz

総合スコア3266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問