2010-12-18 17 views
4

私はin-memory databaseを見てきました。そして、それは私には思っています。どのようにPythonはIO(接続されていなくても)に接続されているIOを扱います。例えば、ハッシュ、セットなど。これはどこかの設定か、リソースに基づいて動的に管理されていますか?リソースが実際のプログラムに及ぼす影響を見るための「簡単な」方法があり、パフォーマンスのヒットがハードウェアのセットアップが異なることをシミュレートしますか?Pythonはどのようにメモリを扱いますか?

注記:問題がある場合は、Redisが私が見ているインメモリのデータストアです。 wrapper for Redis datatypesの実装があります。そのため、Pythonで見つかったデータ型を模倣しています。

答えて

7

Pythonは、アプリケーションが要求するすべてのメモリを割り当てます。政策の余地はあまりない。唯一の問題は、メモリを解放するときです。 (C)Pythonは、もはや参照されていないすべてのメモリを直ちに解放します(これも調整できません)。自分自身からのみ参照されるメモリ(つまりサイクル)は、ガベージコレクタによって解放されます。これには調整可能な設定があります。

オペレーティングシステムがページファイルにメモリの一部を書き込むことが決定しました。

1

あなたが求めているのは正確ではありませんが、Dowserは実行中のプログラムのメモリ使用量をインタラクティブにブラウズするためのPythonツールです。メモリ使用量と割り当てパターンを理解する上で非常に便利です。

http://www.aminus.net/wiki/Dowser

+0

+1のおかげで、FYI - 正しいURLは ".NET" ではなく ".ORG" と思い、ここに私のために働いているURLです。http://www.aminus.net/wiki/ Dowser – blunders

+0

申し訳ありません。タイ –

関連する問題