問題タブ [memory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - Visual C++ メモリは Dot Net フレームワークによって管理されますか?
最近、.NET フレームワーク経由で MAPI にアクセスする際のエラーに対処しています (この記事で説明されています)。現在、一連のメモリ アクセス違反エラーが残っています。
この問題を回避するために、Visual C++ コアを備えたこのサードパーティ コンポーネントを使用しようとしました。残念ながら、まだ同じエラーが発生しています。
私は個人的に Visual C++ を使用したことはありませんが、私の質問は、C++ ライブラリが Visual Studio 2005 を使用してコンパイルされている場合、Visual C++ を使用して、プロジェクトのメモリも .NET フレームワークによって管理されるようになるのでしょうか?使用している .NET ライブラリと同じ問題が発生する可能性がありますか? それとも、間違った木を吠えていますか?
c++ - memset() によりデータがアボートされます
memset()
. _ 問題は、コードが数日間実行されていない限り、通常は発生しないため、その行為を把握するのが難しいことです。
私は次のコードを使用しています:
ご覧のとおり、最初に割り当てられたサイズよりも大きいサイズの memset を使用しようとはしていませんmalloc()
これで何が問題なのか誰にもわかりますか?
actionscript-3 - FLVPlayback コンポーネントのメモリの問題
私のウェブサイトは完全にフラッシュ ベースで、FLV ファイルに変換したビデオのチャンクとして提供された 3D モデルの周りを移動します。FLVPlayback コンポーネントを使用して、プログラム内のビデオを制御しています。System.totalMemory を使用してメモリ チェックを実行しているときに、ビデオが読み込まれるたびにメモリのチャンクが消費され、すべてのイベント リスナーを削除しても (それらはすべて弱く参照されています)、コンポーネントを削除することに気付きました。その親、ビデオを停止し、コンポーネント インスタンスを null にしても、そのメモリは返されません。
このプロジェクトに取り組み始めて以来、これは私を悩ませてきました。これは、ユーザーがインスタンス化してロードできるビデオが膨大な量になる可能性があるためです。現在、すべてのビデオは必要なときに新しい FLVPlayback インスタンスにロードされますが、この問題に対処する最善の方法は、単純にグローバルな FLVPlayback インスタンスを作成し、新しいビデオを古いインスタンスにリロードすることであると読みました。アプリケーションのメモリには FLVPlayback コンポーネントが 1 つだけ存在します。
他の誰かもこの問題に遭遇しましたか? 新しい動画ごとに再利用するだけのグローバル インスタンスを使用するよりも優れたソリューションを見つけましたか?
.net - .netマネージドメモリはオブジェクト内の値の型をどのように処理しますか?
私の理解では、次のことが当てはまります。
- 参照 m はスタック上に存在し、MyMethod() が終了すると範囲外になります。
- 値型 newID はスタック上に存在し、MyMethod() が終了すると範囲外になります。
- new 演算子によって作成されたオブジェクトはヒープに存在し、オブジェクトへの他の参照が存在しないと仮定して、MyMethod() が終了すると、GC によって再利用可能になります。
これが私の質問です:
- オブジェクト内の値の型はスタックまたはヒープに存在しますか?
- オブジェクトの値型のボックス化/ボックス化解除は問題ですか?
- このトピックに関する詳細でありながら理解可能なリソースはありますか?
論理的には、クラス内の値の型はヒープにあると思いますが、そこに到達するためにボックス化する必要があるかどうかはわかりません。
編集:
このトピックの推奨読書:
c - Cメモリ管理
Cでは、メモリの管理方法を実際に監視する必要があるといつも聞いています。そして、私はまだCを学び始めていますが、これまでのところ、関連するアクティビティを管理するメモリをまったく実行する必要はありませんでした。変数を解放し、あらゆる種類の醜いことをしなければならないことを常に想像していました。しかし、そうではないようです。
誰かが(コード例を使って)「メモリ管理」をしなければならないときの例を教えてもらえますか?
java - OSレベルのシステム情報を取得する
私は現在、多くの異なるプラットフォームで実行される可能性のあるJavaアプリを構築していますが、主にSolaris、Linux、およびWindowsのバリアントです。
現在使用されているディスク容量、CPU使用率、基盤となるOSで使用されているメモリなどの情報を正常に抽出できた人はいますか?Javaアプリ自体が消費しているものはどうですか?
できれば、JNIを使用せずにこの情報を取得したいと思います。
memory - 「スタックオーバーフロー」はどのように発生し、どのように防止しますか?
スタック オーバーフローはどのように発生し、それが発生しないことを確認する最善の方法、または特に Web サーバーで発生しないようにする方法はありますが、他の例も興味深いでしょうか?
php - MySQLi の使用 - クエリを閉じるのに適しています
変数の使用を最小限に抑える習慣があります。したがって、次のことによって得られる利点があるかどうか疑問に思っています。
私が正しければ、例1は、関連付けられているメモリを解放する必要がある再割り当て時に、そのままより効率的であるはずです$query
。ただし、関連付けられたメモリを解放するunset
メソッド ( ) があります。これは同じことですか?MySQLi_Result::free()
::free()
結果に関連付けられたメモリを解放するために呼び出さずunset
に、変数を再割り当てすることで同じことをしているのですか? この種のことをログに記録する方法がわかりません - 誰かアイデアがありますか?
c++ - C++ メモリ管理
私は大学で、常に未使用のオブジェクトを解放する必要があることを学びましたが、実際に解放する方法は必要ありません。たとえば、コードを正しく構造化するなどです。C++ でポインターを処理する方法に関する一般的な規則はありますか?
現在、ブーストの使用は許可されていません。私が使用しているフレームワークではジェネリックの使用が禁止されているため、純粋な C++ に固執する必要があります。
c# - プロセス メモリ サイズ - 異なるカウンター
自分の .Net サーバー プロセスが使用しているメモリの量を調べようとしています (監視とログの目的で)。
私は使用しています:
ただし、Process オブジェクトには、使用されているメモリ領域を読み取ることができるいくつかの異なるプロパティがあります。Paged、NonPaged、PagedSystem、NonPagedSystem、Private、Virtual、WorkingSet です。
そして、「ピーク」:これは、これらの最後のピークがこれまでに取った最大値を保存するだけだと推測しています。
各プロパティの MSDN 定義を読んでも、あまり役に立ちませんでした。メモリの管理方法 (ページングと仮想に関する限り) に関する私の知識は非常に限られていることを認めなければなりません。
したがって、私の質問は明らかに「どちらを使用する必要がありますか?」であり、答えは「場合による」であることはわかっています。
このプロセスは基本的に、起こっていることのメモリに一連のリストを保持しますが、他のプロセスはそれと通信し、何かを照会します。これが実行されるサーバーが大量の RAM を必要とすることを期待しているので、内部に保持されているリストのサイズと比較して RAM 要件を推定できるように、このデータにクエリを実行しています。
だから...どれを使うべきですか?なぜですか?