問題タブ [reference-counting]
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.
firefox-addon - outパラメータとして使用するnsCOMPtrをAddRef()するにはどうすればよいですか?
クラスのメンバーがいます:
私はこれを行う方法があります:
AddRef()
しかし、Gecko 9は、あなたが電話をかけたり、電話をかけたりRelease()
することを許可されていないことを強制しますnsCOMPtr<>
。だから今私はこれをやっています:
しかし、生のポインタに直接アクセスすると、私は汚く感じます。AddRef()
ゲッターでパラメーターを出力するための適切な方法は何ですか?
ドキュメントは役に立ちませんでした。
c++ - テンプレートなしで単純なスマート ポインター ベースクラスを作成することは可能ですか?
テンプレートを使用せずにスマート ポインターの基本クラスを作成できるかどうか疑問に思っていました。
多くの実装を見てきましたが、すべてテンプレートを使用しています。たとえば、他のクラスの派生元である基本クラスにスマート ポインター ロジックを実装します。
java - 参照カウントが 0 になるとすぐに JVM がリソースを破棄しないのはなぜですか?
私はいつも、Java のガベージ コレクターが実行するのではなく、必要に応じてアクティブ化するのはなぜなのか疑問に思っていました。
私が見落としていた、Java がそれを行う方法に大きな利点はありますか?
ありがとう
c++ - 参照カウントの内部メカニズムとしてstd::tr1::shared_ptrを使用する
参照カウントの目的で、以下のサンプルコードのようにstd :: tr1 :: shared_ptrを使用するのは安全で正しいですか?(これは単なる特定のサンプルであり、クラスにはFILE *の代わりに他のもの(void *)を含めることができます)
memory - 参照カウント GC が汚名を着せられるのはなぜですか?
私はかつて、プログラミング言語の実装を試みている理想主義的でありながら「怠惰な」プログラマーの間で共通の考えについてどこかで読んだことがあります。次のとおりでした。
「わかっています。実装が簡単で書きやすい参照カウント GCer を作成し、時間ができたら実際の GCer として再実装します。」
当然、この再実装は決して発生しません。
しかし、なぜそのような再実装が必要なのか疑問に思います。Perl 5 や Python などの言語で採用されているとされる時代遅れのアプローチよりも、インクリメンタルおよびコンカレントのさまざまなマーク アンド スイープ コレクターが優れていると見なされるのはなぜですか? (はい、Python がマーク アンド スイープ コレクターを使用してこのアプローチを強化していることは承知しています。)
循環参照は、このような議論の最初のトピックです。はい、それは面倒な場合があります (Perl の再帰的な coderef を参照し、複数の割り当てと参照の弱体化を含むように修正してください)。
しかし、代替手段はより良いですか?細かい実装の詳細については永遠に議論できますが、実際には、ほとんどのマークアンドスイープ GC 実装には次の問題があります。
- リソースが非決定論的に破壊され、推論が困難で冗長すぎるコードにつながります (.NET の IDispose や、他の多くの言語の try/finally 置換を参照してください)。
- 短命、長命、およびその間のすべてのさまざまなカテゴリのガベージによる追加の複雑さ。このような複雑さは、妥当なパフォーマンスに必要なように見えます。
- 別のスレッドが必要になるか、収集を実行するためにプログラムの実行を定期的に停止する必要があります。
弱い参照で軽減できる参照カウントの問題を修正するために、マークアンドスイープの失敗は正当化されますか?
delphi - 将来性を考慮したDelphiインターフェイス参照の実装ですか
アプリケーション全体で広く使用されるヘルパークラスがあります。実装はインターフェイス参照カウントに依存しています。考え方は大まかに次のとおりです。
したがって、実装は、メソッドの最後でスコープ外になるIMyHelperに依存しますが、前ではありません。
それで、質問しているのは、変数がメソッドの残りの部分でアクセスされない場合、将来のDelphiコンパイラがスマートに再生されず、作成された直後にインターフェイスを解放しないことを確信できますか?
ios - 関数が保持されているかどうかを確認する Xcode のツールは?
私は現在、iOS アプリケーションに取り組んでいますが、これは非常に面倒なことが 1 つあります... まあ、とにかく面倒です: オブジェクト プロパティが保持されているかどうかを知るために、常にドキュメントを確認する必要があります (たとえば、UITextField の setDelegate はデリゲートを割り当てて保持しませんが、setFont 関数は保持します... https://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference /UITextField.html )
それは... 痛いです。そのようなことを Xcode で直接知る方法はありますか?
前もって感謝します
iphone - ios @try @catch は、@catch からの戻り時に EXC_BAD_ACCESS をブロックします
私のviewDidLoadのこの@try-@catchブロックは、戻るときにEXC_BAD_ACCESSでクラッシュします。キャッチで実行され、アラートも表示されません。
このコードは viewDidLoad で実行され、アプリの前回の実行中にアーカイブされたデータを取得します。このコードで、アーカイブが理解できないという例外が発生しました。ただし、クラッシュすると、起動時とキャッチ時にクラッシュするため、アプリを実行する方法はまったくありません。何か案は?
iphone - ABContactの代替アドレスブックAPIヘルパー
Erica Sedunによって作成され、githubでリリースされた優れたABContactHelperライブラリを使用したiPhoneアプリがあります。
XCode4のリリースと参照カウントのサポートにより、多くのエラーが発生します。githubのフォークを見ましたが、参照カウントを使用してXCode4に更新されたものはないようです。私はそれを自分で更新しようとしていますが、遅くてエラーが発生しやすいです。自動リファクタリングのサポートを試しましたが、役に立ちませんでした。
IPhone AddressBookと対話するためのシンプルなインターフェイスを提供する代替のAddressBookラッパーを知っている人はいますか?
objective-c - XCode の新しい参照カウントで古いライブラリを使用する
XCode の最新バージョンは、参照カウントをサポートしています。ただし、多くの古いライブラリは、新しい参照カウント アーキテクチャと互換性がありません。
新しい参照カウントアプリで参照カウントされていないライブラリを使用するためのコンパイラオプションまたは何かがありますか?または常にコードを更新する必要がありますか?
C を使用するライブラリ (明らかに参照はカウントされません) はどうなりますか?