問題タブ [objectpool]

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 投票する
3 に答える
273 参照

boost - boost::object_pool を使用すると、明確に終了できません。私は悪用していますか?

プログラムで boost::object_pool を使用していますが、いくつかの問題が見つかりました。終了できません。以下はコードです。boost::pool の使用を提案しないでください。boost::pool は問題ありません。boost::object_pool について話し合ってください。誰でも私を助けることができますか?

このプログラムは正常に終了できません。なんで?

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

c++ - C++ オブジェクト プール: malloc を使用するとプログラムがクラッシュする

単純なオブジェクト プールを作成しようとしていますが、うまく動作しません。malloc を使用してテンプレートの型の動的配列にスペースを割り当てると、コードがクラッシュする

私のコード:

Web で見つけたすべての例は固定配列とベクトルを使用していますが、実行時に配列を割り当てる必要があります。

編集:これは私がそれを作成する方法です:

その行でクラッシュしていることは知っていますが、それを称賛するとクラッシュしません

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

scala - オブジェクトプールを管理するためのスケーラウェイ

オブジェクトプールを管理するためにscalaで推奨される方法は何ですか?

シングルスレッドで大規模なオブジェクトを作成および削除する必要があります (同期の必要はありません)。C++ では、静的オブジェクトの配列を使用しました。

scalaでそれに対処するための慣用的で効果的な方法は何ですか?

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

c# - オブジェクトをいつプールに戻すか

C# アプリケーションでオブジェクト プールを使用したいのですが、C# には参照カウントがないことがわかっています。同じオブジェクトを複数のスレッドに渡すことができる場合、そのオブジェクトへの参照がなくなったことをどのように知ることができ、それをオブジェクト プールに戻すことができますか?

メソッドでやろうと思ったのdisposeですが、それでは遅すぎて、破棄されてプールに戻せません。

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

java - GenericObjectPoolsのborowObjectメソッドはスレッドセーフですか?

この質問では、commons.apache.org の GenericObjectPool<T> はスレッドセーフですか? そのスレッドセーフであることが言及されています。

編集済み:しかし、私のマルチスレッド アプリケーションでは、2 つのスレッドが同時にプールから同じオブジェクトを取得しているという状況があります。このステートメントは間違っていました。

BorrowObject を同期ブロックに移動し、問題を解決しました。

以前にこの問題に直面した人はいますか?

これが私のコードです:

}

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

ios - iOS でヒープの断片化を回避する方法

私たちのアプリは、実行中にたくさんの小さなオブジェクトを作成します。ほとんどの場合、Autoreleased NSString および NSNumber オブジェクトに帰着します。アプリはバックグラウンドで「24 時間 365 日」実行するように設計されているため、ヒープの断片化が大きな問題になります。

プログラムを完全に再構築せずにそれを回避する手法は何ですか。

私は考えていました:-最終リリース後にオブジェクトをプールに戻すオブジェクトプールですが、オブジェクトは変更可能である必要があります。(NSMuttableString はそれ自体でヒープの断片化を引き起こしますか?)

他の人はこの問題にどのように対処していますか?

編集:これが、メモリの断片化に疑わしい方法です。rpages と [vm-pageshortage] を見てください。

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

c++ - ブーストプールの経験が要求されました。事前割り当てのあるアロケータとして便利ですか?

最近、プール/アロケータ メカニズムを探しています。Boost Pool は解決策を提供しているように見えますが、ドキュメントから推測できないことがまだあります。

何を割り当てる必要があるか

  1. いくつかの小さなクラス (~30 文字)
  2. std::map (動的アロケータを単独で実行しないようにしたい)
  3. pugi::xml 内の割り当て
  4. std::文字列

割り当て用のアドレス空間を制御する方法 (または単に量)

object_pool は、ニーズを割り当てるための良い方法を提供するように見えます 1) ただし、アロケーターが使用する固定サイズを設定したいと考えています。デフォルトでは、ifself でメモリを取得します。可能であれば、再生できるアドレス空間を指定したいと思います。

また:

UserAllocator は Boost::Pool で利用できますが。ポイントを打ち負かすようです。必要な制御があまりにも非効率になるのではないかと心配しています...そしてゼロから始める方が良いでしょう.

pool_allocator に固定領域を設定することはできますか?

質問は最初のものと少し似ています。ブースト プールは、boost::pool_allocator を std-type-class (マップなど) に指定するときに、割り当てられたメモリの量/場所を制限する方法を提供しますか?

私のシナリオ

組み込み Linux プログラミング。システムは永久に稼働し続けなければなりません。したがって、メモリのセグメンテーションを危険にさらすことはできません。現在、私は主に静的割り当て(スタック)だけでなく、生の「新しい」ものもいくつか使用しています。プログラムがループするたびに同じメモリ領域を使用する割り当てスキームが必要です。スピード・スペースも大事ですが、やはり安全が最優先。

StackOverflow が質問する場所であることを願っています。Boost::Pool の作者 "Stephen" に連絡を取ってみましたが、うまくいきませんでした。Boost 固有のフォーラムは見つかりませんでした。

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

java - プール、Java から突然閉じられたソケットを排除します。

オブジェクト プールの Java 実装があり、オブジェクトが TCP ソケットに正常に接続されているとします。

プール レベル (ConnectionFactory) で「クリーンアップ」スレッドを保持し、プールが M 分間アイドル状態になっているかどうかを N 分ごとにチェックします (つまり、最後のアクセスは M 分前で、ここでは M>N)。

その場合は、コア数のソケットだけがプールに残るまで、すべての追加ソケットを閉じます。

ここで、突然閉じられたソケットも追跡して除去する必要があります。動作しているすべてのソケットを閉じて、突然閉じたソケット (反対側で閉じた) を持つプールになってしまう可能性があるため、これは必須のようです。

間違いなく、接続ファクトリ レベルではなく、ソケット レベルを調べる必要があります。

「Java で突然閉じられたソケットのトレース」、「接続プールのクリーニング」について調査しましたが、(各ソケットごとに) ACK または KeepAliveChecks を送信しない限り、Java ソケット API には何もありません。つまり、定期的にすべてのソケットでこれを実行する必要があります。

最良の方法は何ですか (つまり、他に方法はありますか) 良い人 (適切に接続されたソケット) をプールに保持することになりますか?

プールで突然閉じられたソケットをクリーンアップする方法は?