ユーザ用ツール

サイト用ツール


appendix:garbagecollectorを止める方法

文書の過去の版を表示しています。


GC停止の方法

System.GC.Collectからたどるとves_icall_System_GC_InternalCollectに行き着くじゃろ。
それの宣言を探したら gc-internal.h にあることがわかるじゃろ、その下を見てみれば

extern void mono_gc_enable (void) MONO_INTERNAL;
extern void mono_gc_disable (void) MONO_INTERNAL;

というあやしげな宣言があるじゃろ、あとはわかるな?
MONO_INTERNALが邪魔で見えない?心の目で見るんだ!

コメント

とあるプラグインの制作者, 2022/03/04 19:16
心の目で見えず、どうやって上の2つのAPIのアドレスを見つけ出したのか、
気になったので、よろしければ教えてくださいませんか?
当方で確認したところ、
github.com/Unity-Technologies/mono/blob/unity-5.6/mono/metadata/sgen-gc.c
github.com/dnSpy/dnSpy-Unity-mono/blob/master/unity-5.6.4/mono/metadata/sgen-gc.c
において、mono_gc_disableのすぐ後にmono_gc_disableとmono_gc_enableとが
記述されており、この順序でAPIのアドレスが並んでいることから、「ぷらし~ぼ」では
あのようなアドレス指定となったのでしょうか?
それともmono.dllをdisassemblyなどして解析されたのでしょうか?
最後に、素晴らしいプラグインを作っていただいてありがとうございます。
おかげで私の「悲願」が達成され、うれしい限りです。
とあるプラグインの制作者, 2022/03/07 00:52
誤記訂正です。
最初のmono_gc_disableはmono_gc_get_heap_sizeが正しいです。
ふあんぶる, 2022/03/07 09:49
これでわかるかいのぅ・・・
とあるプラグインの制作者, 2022/03/07 17:49
大変よくわかりました。ありがとうございました。
ちなみに私はお察しの通り「速度改善プラグイン」の作者です。
ふあんぶる, 2022/03/07 18:41
マルチスレッド化するほうがむつかしいと思います!
ウニ化するし・・・
ただのダンス好き, 2022/12/31 22:56
GCつながりでお願いです
以下で示されているUnityのOnGuiのGCメモリ発生バグを修正するsybarisプラグインの作成は
可能でしょうか
Garbage collector spikes because of GUI
//forum.unity.com/threads/garbage-collector-spikes-because-of-gui.60217/page-2
ぷらし~ぼプラグイン使用中にOnGuiでmono_gc_out_of_memoryが発生してCrashが多発したので

あとGCには関係ないのですがscarletkomさんが悩んでいらっしゃるUpdateの最後に実行する
方法は以下で示されているMonoBehaviour.Invokeの0秒指定が該当しそうな気がします
【Unity】MonoBehaviour.Invoke()ってなんだろう?
//www.urablog.xyz/entry/2016/08/27/103229
コメントを入力:
 
appendix/garbagecollectorを止める方法.1646280379.txt.gz · 最終更新: 2022/03/03 13:06 by fumble