問題タブ [lifetime]

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.

0 投票する
1 に答える
938 参照

android - サービス寿命の問題

私は現在、生成され、次のコマンドをキューから取り出して実行するか、少しスリープしてから再試行するスレッドを持っています。ただし、キューにコマンドがなく、アプリケーションにアクティブなアクティビティがない場合は実行したくありません。

私の質問は、どのルートを調査する必要があるか、他の人がどのルートをたどった可能性があるかということです。

  1. コマンドが入ったときにのみ処理するようにサービスをリファクタリングし、スレッドを生成しない
  2. スレッドに 3 番目の条件がある (!activityCount = 0 の場合はスレッドを停止する)

または、私はそれが間違っていて、それにバインドされたアクティビティがなくなった場合、Android はスレッドを自動的に終了できますか?

0 投票する
2 に答える
2728 参照

c++ - 完全な表現の境界と一時的なものの寿命

重複の可能性:
C ++:一時的な引数の寿命?

一時変数は、完全な式を評価する最後のステップとして破棄されると言われています。

一時的なポインタはバーが戻るまで存続しますが、

それはbarが戻るまでまだ存続しますか、それともbaz returnはここで完全な式が終了することを意味します。bazが戻った後にオブジェクトを破棄することをチェックしたコンパイラですが、それを信頼できますか?

0 投票する
2 に答える
10947 参照

session - ExpressおよびMongoDBを使用したnode.jsでのセッションの有効期間

Expressフレームワークでnode.jsを使用しています。セッションストアとして、MongoDBを使用しています。セッションオブジェクトがMongoDBから削除されるまでの有効期間を設定するにはどうすればよいですか。これが私が宣言をしている方法です:

0 投票する
2 に答える
529 参照

c++ - 初期化された構造体メンバーを集約するための一時的なバインドの存続期間

次のコードが与えられます:

出力は次のとおりです。

C ++ 0xには、新しい初期化子として使用したときにぶら下がっている参照を作成できることを指示する句がありますが、一時的なconst参照の集約初期化については何も述べていません(少なくとも私が見つけることはできません)。

それでは、この不特定の動作ですか?

0 投票する
1 に答える
2060 参照

lucene.net - Lucene.NET のライフタイム管理

ドキュメントの追加と検索に関する基本的な知識があるとしましょう。

IndexWriter と IndexReader のインスタンスを管理するためのベスト プラクティスは何ですか?

現在、私のアプリケーションは IndexWriter のシングルトン インスタンスを作成しています。検索を行う必要があるときはいつでも、次を使用して IndexWriter から IndexSearcher を作成するだけです

これを行っているのは、新しい IndexReader を作成するとインデックスがメモリに読み込まれ、GC がメモリを再割り当てするのを待つためです。これにより、メモリ不足エラーが発生していました。

この現在の実装は理想的と考えられますか? この実装によりメモリの問題は解決されましたが、write.lock ファイルが常に存在するという問題があります (IndexWriter は常にインスタンス化されて開かれるため)。これは、アプリで発生したエラーのスタック トレースです。

ロック取得がタイムアウトしました: NativeFSLock@C:\inetpub\wwwroot\htdocs_beta\App_Data\products3\write.lock: System.IO.IOException: プロセスがファイル 'C:\inetpub\wwwroot\htdocs_beta\App_Data\products3\ にアクセスできませんwrite.lock' は、別のプロセスによって使用されているためです。System.IO.__Error.WinIOError (Int32 errorCode、文字列の多分フルパス) で System.IO.FileStream.Init (文字列パス、FileMode モード、FileAccess アクセス、Int32 権限、ブール値の useRights、FileShare 共有、Int32 bufferSize、FileOptions オプション、SECURITY_ATTRIBUTES secAttrs , String msgPath, Boolean bFromProxy, Boolean useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Lucene.Net.Store.NativeFSLock.Obtain()

検索用に IndexSearcher のシングルトン インスタンスを作成し、必要に応じてメモリ内に IndexWriter を作成するのが最善ではないかと考えています。そうすれば、インデックスの更新時に write.lock ファイルが作成/削除されます。これに関する唯一の問題は、IndexSearcher インスタンスが古くなることです。インデックスが更新されている場合は、IndexSearcher をリロードするタスクを実行する必要があります。

どう思いますか?

ライブ更新で大規模なインデックスをどのように処理しますか?

0 投票する
3 に答える
487 参照

c# - CodeBehind内のオブジェクトはどのくらい存続しますか?

.aspxページのコードビハインドでオブジェクトを作成した場合、そのオブジェクトの存続期間はどれくらいになると予想できますか?それはポストバックを越えて生きますか?どういうわけか別のページに渡すことはできますか?たとえば、セッションオブジェクトである限り、ライブにすることはできますか?

コードビハインドから作成されたオブジェクトのライフサイクルと、このライフサイクルとの対話方法を説明するドキュメントを探してWebを検索しました。関連するリンクをいただければ幸いです。

ちなみに、私はコードビハインドでC#を使用していますが、VBを対象としたほとんどのアドバイスも適用できると思います。

0 投票する
1 に答える
926 参照

.net - .NET Remoting object Lifetime

I wrote this code:

Does the override of InitializeLifetimeService grantee that after 2 seconds the object is no "garbage collected"? I mean, independently if this instance was remotely accessed or not.

Thank you.

0 投票する
5 に答える
383 参照

c++ - C ++でエイリアシングを回避する「正しい」方法は何ですか(コンテナの要素をそれ自体に追加する場合など)?

上記のコードが非常に危険な場合があることを知りました。

(理由が明らかでない場合、あなたは一人ではありません... 私にも明らかではありませんでした。)

私の質問:

  1. それに対処する「標準的な」方法は何ですか?新しい変数を作成し、その後すぐに何かに割り当てるのは、私には少し奇妙に思えます。それに対処するより良い方法はありますか?

  2. このようなエイリアシングの問題に注意するために、どのように自分自身を訓練しますか? どのパターンを探しますか? この状況を認識できません。Cのキーワードについて学んだときにエイリアシングについて学んだrestrictだけで、問題が実際に何であるかを理解できるようになったのは今だけです。


編集:

私は答えを受け入れたいと思っていますが、質問の(2)の部分が答えられていないようです. 自分が書いたコードのエイリアシングの間違いを見つけるために、人々がどのような戦略を使用しているのか疑問に思っています。

これまでに思いついた戦略の 1 つは、2 つのパラメーターで同じ値を渡さないようにすることです。(この場合、1 つのパラメーターが暗黙的で、1 つが明示的です。)

他に簡単に気を付けたり注意したりすることはありますか?

0 投票する
1 に答える
631 参照

objective-c - Objectivecスレッド内のスレッド変数の有効期間


-mainメソッド内で使用するNSOperationがあります[NSThread detachNewThreadSelector:@selector(aMethod:) toTarget:self withObject:anArgument];

aObject(私のNSOperationサブクラスのインスタンス変数)は、-mainメソッド内に返される自動解放された配列のオブジェクトへの弱参照です。

NSThreadのdetachNewThreadSelectorメソッドがwithObject selfanArgumentを保持していることは知っていますが、aObjectはどうなりますか?デタッチされたスレッド(aMethod :)の実行中にそれが存在することは確かですか?自己はによって保持されdetachNewThreadSelectorますが、これは、メインスレッドのプールが保持されているために解放が遅れ、したがってclientsが存在し、したがってが存在することを意味しaObjectますか?
または、-main(NSOperation)スレッドは実行を終了し、 -aMethod(NSThread)が終了する前に解放されるため、そこで使用するのは安全ではaObjectありませんか?

本当の問題は次のとおりです。[NSThread detachNewThreadSelector:@selector(aMethod:) ...toTarget:self ...]スレッド内から呼び出す場合、最後のスレッドは、自動解放されたインスタンス(clients配列)が()で安全に使用できるようaMethodに保持されself->aObjectますか(弱い参照を介して)?

0 投票する
1 に答える
383 参照

c++ - 部分式によって配列が作成されると、その中の一時変数はどうなりますか?

私は FDIS の次の 2 つの段落を読んでいました (12.2p{4,5}):

完全式の終わりとは異なる時点で一時変数が破棄される状況が 2 つあります。最初のコンテキストは、配列の要素を初期化するために既定のコンストラクターが呼び出されるときです。コンストラクターに 1 つ以上の既定の引数がある場合、既定の引数で作成されたすべての一時的な要素の破棄は、次の配列要素 (存在する場合) の構築の前に順序付けられます。

2 番目のコンテキストは、参照がテンポラリにバインドされる場合です。参照がバインドされている一時、または参照がバインドされているサブオブジェクトの完全なオブジェクトである一時は、参照の存続期間中存続します。[...]

  • 関数呼び出し (5.2.2) の参照パラメーターへの一時的なバインドは、呼び出しを含む完全な式が完了するまで持続します。

これら2つの2つは、次の場合に矛盾しているようです

この出力CDCDは、最初のコンテキストで必要とされるか、またはCCDD2 番目のコンテキストで必要とされるように出力されますか? GCC は、2 番目のコンテキスト記述と出力に従っているようCCDDです。何か重要なことを見落としていませんか?


編集: C++0x は必要ないと思います。このnew-expression も私の質問の影響を受けます:

ただし、この場合、GCC は最初のコンテキストに従い、 を出力しますCDCD