問題タブ [finalization]
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 - GValue の初期化/ファイナライズの必要性
g_value_init
/をいつ呼び出す必要がありますg_value_reset
か?
現在、すべての場合にg_value_init
andを使用しg_value_reset
ていますが、高速化できるかどうかを知りたいです。
私は少なくともそれを知っています:
- オブジェクトまたはボックス化された型を使用する場合
g_value_reset
、GValue が参照を取得したり、 の場合は複製されたりする可能性があるため、必ず を呼び出す必要がありGBoxed
ます。 guint
orのような基本型をgboolean
(メモリ管理なしで)使用する場合g_value_reset
、メモリを割り当てる必要がないため、理論的には呼び出しは不要です。私も実装を読んだことがありますが、それが真実であることが証明されています。ただし、作成者が変更を導入してメモリの割り当てを開始する (または単にトレースを実行する) と、メモリ リークが発生するのではないかと心配しています。
以上が私の現在の研究です。おそらく公式ドキュメントの参照に裏付けられて、それを広げたいと思います。前もって感謝します。
java - Java 9 で finalize() メソッドが非推奨になったのはなぜですか?
(この質問はWhy would you ever implement finalize()? とは異なります。この質問は Java プラットフォームからの非推奨に関するもので、もう 1 つの質問はアプリケーションでこのメカニズムを使用する必要があるかどうかに関するものです。)
finalize()
メソッドが Java 9 で非推奨になったのはなぜですか?
はい、間違った方法で使用される可能性があります (ガベージ コレクションからオブジェクトを保存する [1 回だけ] またはその中のネイティブ リソースを閉じようとする [まったく閉じないよりはましです]) など、他の多くの方法があります。間違って使用される可能性があります。
ではfinalize()
、Java から追い出す必要があるほど危険またはまったく役に立たないのでしょうか?