タグ付けされた質問 「memory-management」

可能であれば、公平でリクエスター間のスターベーションがないプログラム要求に応答するために、物理メモリーの一部を動的に割り当てて解放するプロセス。

11
JavaScriptでのオブジェクトの削除
私はJavaScriptのdelete演算子と少し混乱しています。次のコードを見てください。 var obj = { helloText: "Hello World!" }; var foo = obj; delete obj; このコードが実行された後、objisですがnull、fooそれでもとまったく同じようにオブジェクトを参照しますobj。このオブジェクトは、foo指し示したオブジェクトと同じだと思います。 これは私を混乱させます。なぜなら、書き込みdelete objでobjは、変数だけでなく、メモリ内を指しているオブジェクトも削除されると思っていたからですobj。 JavaScriptののガベージコレクタは、私がオブジェクトを指し、他の変数を持っていなかった場合は、それがそうすることを、保持/解放的に取り組んでいるためですでしょうメモリから削除されますか? (ちなみに、私のテストはSafari 4で行われました。)





13
malloc()とfree()はどのように機能しますか?
どうやっmallocてfree仕事をしたいのか知りたい。 int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } 可能であれば、答えがメモリレベルで詳細にある場合、私は本当に感謝します。

14
iノードの使用を解放する方法?
iノードの使用率が100%(df -iコマンドを使用)のディスクドライブがあります。ただし、ファイルを大幅に削除した後も、使用率は100%のままです。 それを行う正しい方法は何ですか? ディスクスペースの使用率が低いディスクドライブが、ディスクスペースの使用率が高いディスクドライブよりもInodeの使用率が高くなる可能性があるのはなぜですか。 多くのファイルを圧縮すると、使用されるiノード数が減る可能性はありますか?

12
Pythonプロセスで使用される合計メモリ?
Pythonプログラムが現在使用しているメモリの量を判別する方法はありますか?単一のオブジェクトのメモリ使用量についての議論を見てきましたが、必要なのはプロセスの合計メモリ使用量です。これにより、キャッシュされたデータの破棄を開始する必要がある時期を判断できます。


7
弱い参照と所有されていない参照の違いは何ですか?
スウィフトは: 強い参照 弱い参照 所有されていない参照 所有されていない参照と弱い参照との違いは何ですか? 所有されていない参照を使用しても安全ですか? 所有されていない参照は、C / C ++のダングリングポインターのようなセキュリティリスクですか?

10
これは削除できますか?
delete this;delete-statementがクラスのそのインスタンスで実行される最後のステートメントである場合、許可されますか?もちろん、this-pointerで表されるオブジェクトは、newly-created だと確信しています。 私はこのようなことを考えています: void SomeModule::doStuff() { // in the controller, "this" object of SomeModule is the "current module" // now, if I want to switch over to a new Module, eg: controller->setWorkingModule(new OtherModule()); // since the new "OtherModule" object will take the lead, // I want to get rid …

1
.so、.la、および.aライブラリファイルの違いは何ですか?
私は.soファイルが一種の動的ライブラリであることを知っています(多くのスレッドがそのようなライブラリを共有できるため、メモリに複数のコピーを保持する必要はありません)。しかし、違いは何である.aとは.la?これらはすべて静的ライブラリですか? 動的ライブラリに静的ライブラリよりも大きな利点がある場合、なぜ静的ライブラリがまだたくさんあるのですか? また、ライブラリ(両方の種類)をロードするための基本的なメカニズムと、ライブラリのコードがどこかで使用されたときにどのように呼び出されるかについても知りたいです。カーネルのどの部分を調べればよいですか?そして、プロセスがどのように実行されているかを知るために、関連するどのLinuxコマンド/ユーティリティを知っておくべきですか?(私はld今までにコマンドを知っています) いつ、.soまたはにコードをビルドする必要があり.aますか?どちらがいいですか? [mirror@home ins_openvpn]$ ls lib/openvpn/plugins/ -l total 96 -rw-r--r-- 1 mirror mirror 22892 Sep 2 23:25 openvpn-plugin-auth-pam.a -rwxr-xr-x 1 mirror mirror 931 Sep 2 23:25 openvpn-plugin-auth-pam.la -rwxr-xr-x 1 mirror mirror 23621 Sep 2 23:25 openvpn-plugin-auth-pam.so -rw-r--r-- 1 mirror mirror 17228 Sep 2 23:25 openvpn-plugin-down-root.a -rwxr-xr-x 1 mirror …


7
ARCで@autoreleasepoolがまだ必要なのはなぜですか?
ほとんどの場合、ARC(自動参照カウント)では、Objective-Cオブジェクトでのメモリ管理について考える必要はまったくありません。NSAutoreleasePoolsの作成は許可されなくなりましたが、新しい構文があります。 @autoreleasepool { … } 私の質問は、手動でリリース/オートリリースすることになっていないのに、なぜこれが必要になるのでしょうか? 編集:私がすべての回答とコメントから得たものを簡潔に要約すると: 新しい構文: @autoreleasepool { … } は新しい構文です NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; … [pool drain]; さらに重要なことには: ARCはも使用autoreleaseしますrelease。 そのためには、自動解放プールが必要です。 ARCは自動リリースプールを作成しません。しかしながら: すべてのCocoaアプリのメインスレッドには、すでに自動解放プールが含まれています。 次の2つの場合に利用できます@autoreleasepool。 セカンダリスレッドで自動解放プールがない場合は、などのリークを防ぐために独自に作成する必要がありますmyRunLoop(…) { @autoreleasepool { … } return success; }。 @mattjgallowayが彼の答えで示したように、よりローカルなプールを作成したい場合。

15
.NETでの使用後にオブジェクトをNull / Nothingに設定する
それらを使い終わったら、すべてのオブジェクトをnull(NothingVB.NETで)に設定する必要がありますか? .NETでは、IDisposable一部のリソースを解放するためにインターフェースを実装するオブジェクトのインスタンスを破棄することが不可欠であると理解しisDisposedています。メモリまたは少なくとも部分的に? また、オブジェクトがスコープから外れると、ガベージコレクターの次のパスの準備ができるようにマークされます(ただし、これには時間がかかる場合があります)。 したがって、これを念頭に置いnullて、システムがメモリを解放する速度を上げるように設定すると、それがスコープ内になく、悪い副作用があるかどうかを確認する必要がなくなります。 MSDNの記事では例ではこれを行っていません。現在、害を確認できないため、これを行っています。しかし、私は意見の混合に遭遇したので、コメントは役に立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.