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

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

1
GetRefのメモリ消費量(ガベージコレクション)がKB4525236で変更されました
Windows 2016サーバー/ Windows 10クライアントにKB4525236をインストールした後、メモリ不足の問題が発生します。このセキュリティ修正により、から関数を呼び出すときにメモリがガベージコレクションされる瞬間が変わったようGetRefです。 プレKB4525236 を通じて呼び出された関数で作成された各インスタンスGetRefは、インスタンス変数が次のように設定されるとすぐにガベージコレクションされます。nothing KB4525236の投稿 関数で作成された各インスタンスGetRefはメモリに残り、関数全体が完了するまでガベージコレクションされません。ループでインスタンスを作成すると、特に32ビットプロセスでは、これがすぐに加算されてメモリ不足につながる可能性があります。 ご質問 オンラインで関連するものを見つけることができないので、同じ問題が発生している他の人から確認を得たいと思います。スクラッチを 編集:これは同じ問題ですが、現時点で解決策はありません (KB4524570(2019年11月12日)Windows 10 1903以降のvbscript.dll class_terminateバグ) 誰かが検証して実行可能なソリューションを知っていれば、それは素晴らしいことです。 POC KB4525236がインストールされているデバイスで実行されている次のスクリプトは、次の場合のガベージコレクションの違いを示しています。 直接呼び出されます:最初のインスタンスが破棄された後にのみ2番目のインスタンスが作成されます(これは私たちの望ましい動作です) コールスルーGetRef:最初のインスタンスが破棄される前に 2番目のインスタンスが作成されるため、メモリを使用する2つのインスタンスがあります。 名前を付けて保存:KB4525236.vbs として実行:wscript KB4525236.vbs Dim Name, Log Class IDummyInstance Dim FName Sub Class_Initialize FName = Name Log = Log & "Initialize " & FName & VbNewLine End Sub Sub Class_Terminate …

1
Javaのオブジェクト初期化“ Foo f = new Foo()”は、Cのポインターにmallocを使用することと本質的に同じですか?
Javaでのオブジェクト作成の背後にある実際のプロセスを理解しようとしています。他のプログラミング言語もあると思います。 Javaでのオブジェクトの初期化がCで構造体にmallocを使用する場合と同じであると想定するのは間違っているでしょうか? 例: Foo f = new Foo(10); typedef struct foo Foo; Foo *f = malloc(sizeof(Foo)); これが、オブジェクトがスタックではなくヒープ上にあると言われるのはなぜですか?それらは本質的にデータへの単なるポインタなので?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.