問題タブ [memory-management]
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.
c - C で malloc と free のラッパー関数を作成する
メモリ リークを通知するために、C用free
およびC用のラッパー関数を作成しようとしています。malloc
これらの関数を宣言する方法を知っている人はいますか?私が呼び出すmalloc()
とfree()
、標準ライブラリ関数ではなくカスタム関数が呼び出されますか?
vb6 - VB6での動的メモリ割り当て
そんなことありますか?
私はC++new
コマンドのようなもの、つまりメモリの明示的な解放を必要とする(またはメモリリークのリスクがある)メモリの割り当てについて話しています。
フォーム/コントロール/その他のオブジェクトをに設定することで以前にいくつかのGDIリークの問題を解決しなければNothing
ならなかったことを覚えていますが、今は何を、なぜか思い出せないので、私は尋ねます...
VB6で開発するときに、メモリ管理について心配する必要がありますか?
memory-management - OS は通常、カーネル メモリとページ処理をどのように管理していますか?
私はカーネルの設計に取り組んでおり、ページングに関していくつか質問があります。
これまでのところ、私が持っている基本的な考え方は次のとおりです。各プログラムは、プログラムが呼び出すことができるカーネル関数用に予約したセクションを差し引いた、独自の (またはそう考える) 4G のメモリを取得します。そのため、OS は、プログラムが操作中に使用する必要があるページをメモリにロードする何らかの方法を見つける必要があります。
ここで、メモリとプロセッサ時間が無限にあると仮定すると、存在しない (またはスワップアウトされた) ページのページ フォールトを使用して、プログラムが書き込みまたは読み取りを行った任意のページをロード/割り当てることができたので、OSしかし、現実の世界では、このプロセスを最適化する必要があります。これにより、プログラムがこれまでに触れたすべてのメモリを常に消費することはありません。
だから私の質問は、OSは一般的にこれをどのように行うのですか? 私の最初の考えは、プログラムがページを設定/解放するために呼び出す関数を作成することです。これは、それ自体でメモリを管理できますが、プログラムは通常これを行いますか、それともコンパイラは自由に統治できると想定しますか? また、コンパイラは、かなり大きなメモリ セグメントを割り当てる必要がある状況をどのように処理しますか? Xページを順番に渡そうとする関数を提供する必要がありますか?
これは明らかに言語固有の質問ではありませんが、私は標準 C に部分的であり、C++ が得意なので、コード例をそれまたはアセンブリのいずれかにしたいと思います。(アセンブルは必要ありません。できるだけ多くの C コードで動作するようにし、最後のステップとして最適化するつもりです。)
同様に答えやすいもう 1 つのこと: プログラムが呼び出す必要があるカーネル関数を一般的にどのように処理しますか? プログラムが呼び出すことができるほとんどの基本的な関数/プロセス固有のメモリを含むメモリのセット領域(仮想空間の終わりに向かって考えていた)を持つだけで問題ありませんか? そこからの私の考えは、プログラムが何か重要なことをする必要があるときに、カーネル関数に非常に凝ったことをさせ、ページをスワップアウトすることです (プログラムが自分のスペースで機密性の高いカーネル関数を認識できないようにするため)。この時点でセキュリティに焦点を当てます。
だから私は、詳細よりも一般的なデザインのアイデアについてもっと心配していると思います. カーネルを GCC と完全に互換性のあるものにしたいと考えており、通常のプログラムが必要とするすべてのものを提供できるようにする必要があります。
アドバイスをありがとう。
c++ - シングルトン デストラクタ
インスタンス/参照カウンターを使用しないシングルトン オブジェクトは、C++ でメモリ リークと見なす必要がありますか?
カウントがゼロのときにシングルトン インスタンスの明示的な削除を要求するカウンターがない場合、オブジェクトはどのように削除されるのでしょうか? アプリケーションの終了時に OS によってクリーンアップされますか? そのシングルトンがヒープにメモリを割り当てていたらどうなるでしょうか?
簡単に言うと、Singelton のデストラクタを呼び出す必要がありますか、それともアプリケーションの終了時にクリーンアップされることに依存できますか?
c# - List Clear() メソッドは子を破棄しますか [C#.NET]?
リストの再帰的なリストを作成すると:
その後、tempList.Clear() を呼び出します。メモリ内のすべての childLists を破棄しますか?それとも最初にすべての childLists をクリアする再帰メソッドを作成する必要がありますか?
c# - ADO.NET + 大量の INSERT + Excel + C# = 「悪い時間」ですか?
基本的に、大量のデータを Excel ファイルに挿入する必要があります。OleDB 接続を作成するのが最速の方法のようですが、メモリの問題が発生したことがわかりました。INSERT クエリを実行すると、プロセスで使用されるメモリが増加し続けるようです。Excelファイルに出力するときにのみ発生するように絞り込みました(Excelへの出力がなくてもメモリは安定しています)。各ワークシート間の接続を閉じて再度開きますが、これはメモリ使用量に影響を与えないようです (Dispose() と同様)。比較的小さなデータセットで確認できるように、データは正常に書き込まれています。誰かが洞察力を持っているなら、それはありがたいです。
initializeADOConn()はコンストラクターで呼び出されます
initADOConnInsertComm()は、挿入パラメータ化された挿入クエリを作成します
writeRecord()は、新しいレコードが書き込まれるたびに呼び出されます。必要に応じて新しいワークシートが作成されます。
編集:
いいえ、エクセルは全く使いません。私は意図的に Interop.Excel を避けています。パフォーマンスが悪いためです (少なくとも、私が手を出していたからです)。
c# - .NET CF アプリケーションとメモリ不足の例外
.NET CF 3.5 ネットワーク ゲームを開発しています。私の問題は、アプリが最初のインスタンスですべてのリソースをロードすることです。ただし、その後の起動時に、リソース、特にサウンドや大きな画像をロードしているときに、アプリは例外からメモリを取得します。
ガイドしてください
iphone - CocoaTouch (iPhone OS) で、Instruments Leak ツールが見つけられないリークを見つけて削除するにはどうすればよいですか?
シミュレーターで問題なく動作する iPhone アプリがあります。絶対に必要ではないものをすべて取り除くことで、メモリの警告にうまく対応します。デバイスで実行すると、うまく動作します。しかし、一定量使用すると、エラー コード 101 でクラッシュします。これは、メモリ使用量が原因で OS が強制終了したことを示しています。メモリの警告が表示され (ログに記録しています)、アプリはそれに応答しますが、その後すぐに停止します。
Instruments で (デバイスまたは sim のいずれかで) アプリを見ると、リークは見つかりません。さらに、正味のメモリ使用量は 600 ~ 700k バイトの範囲です。アプリのさまざまなビューから移行すると、(予想どおり) メモリ使用量が増加しますが、ビューとコントローラが解放されて解放されると、メモリ使用量が以前ほど低くなることはありません。ただし、追加は通常、1000 ~ 2000 バイトの範囲内のものにすぎません。したがって、Leaks はリークを示していませんが、どこかに問題があると思われます。また、割り当てているすべてのオブジェクトを確認しましたが、すべてが期待どおりに再利用されているようです。増加し続けている唯一のオブジェクトは GeneralBlock-N (N は数値) です。
Instruments のネット使用量の数値に注意を払う必要はありませんか? 問題を診断するための次のステップは何ですか?
追加: 私は malloc() や、私が担当するバッファを返す CoreFoundation ライブラリへの呼び出しを行っていません。私が行っている Obj-C 以外の呼び出しは、ステートメントを NSLog に記録することだけです。
c++ - C++ で Windows のメモリ使用量を取得する方法
アプリケーションがプログラム自体から消費しているメモリの量を調べようとしています。私が探しているメモリ使用量は、Windows タスク マネージャーの [プロセス] タブの [メモリ使用量] 列に表示される数値です。
flash - ガベージ コレクター Flash Player
解放されたメモリを強制的にフラッシュ ガベージ コレクタにクリーンアップさせる方法はありますか? フラッシュが参照されていないメモリをクリーンアップするのに多くの時間がかかることを見てきました...