問題タブ [circular-buffer]
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.
java - RingFiFoBufferを実装する方法
私はJavaプログラミングに不慣れです。RingFiFoBufferの実装方法についていくつか質問があります。
- 大きなXMLファイルをこのバッファーに保存できますか?はいの場合、どのくらいの大きさですか?
- 複数のスレッドがRingBufferからレコードを同時に挿入/削除/フェッチできますか?
- いくつのレコードを保存できますか?
- コードの書き方を理解できるチュートリアルはありますか?
http://commons.apache.org/collections/apidocs/org/apache/commons/collections/buffer/CircularFifoBuffer.htmlのみが見つかりました
android - 循環バッファのスレッドセーフ
循環バッファがスレッドセーフであることを確認したいと思います。Bluetooth経由でストリーミングされたデータを保存するためにバッファーを使用していると同時に、別のスレッドを使用してデータを削除し、Androidデバイスにローカルに保存しています。
これは私の現在のCircularBuffer
使用Semaphore
です。synchronized
すべてのメソッドに追加するだけでスレッドプルーフにすることは可能ですか?それが私の好みの方法です。
c++ - c ++ブーストイテレータがアサートをスローし、プログラムが終了する
この行で次のエラーが発生します。
buffer
クラスのオブジェクトですaccumlator
。
ここでは、バイト配列をショートに変換しようとしています。コードはこのランタイム エラーをスローして終了します。
バッファの先頭を指すようにイテレータを初期化しました
循環バッファへindex
のイテレータです。
boost::cb_details::iterator::reference boost::cb_details::iterator::operator*() const [with Buff = boost::circular_buffer, Traits = boost::cb_details::nonconst_traits >, boost::cb_details:: iterator::reference = char&]: アサーション `m_it != 0' が失敗しました。
これをファイルboost/circular_buffer/detail.hppまで追跡しました
アサート条件のチェック - イテレータが終了を指しているかどうか。end を指している場合は、アサートをスローします。
前もって感謝します。
c++ - cv :: Matオブジェクト(OpenCV)の循環バッファーを実装する方法は?
プログラムに循環バッファを実装しようとしています。バッファは、以下に示すように、2つのスレッド間でデータを共有するために使用されます。OpenCVを使用して、カメラからビデオフレームを取得します(スレッド1)。次に、このデータを循環バッファーに格納して、スレッド2がバッファーからデータを取得できるようにします。
cv::Mat
C ++でオブジェクトの循環バッファを実装するにはどうすればよいですか?int
標準のC++オブジェクト(またはなど)の循環バッファを作成する方法は知ってchar
いますが、タイプがのオブジェクトで動作させることはできませんcv::Mat
。
助言がありますか?
c++ - 効率的な循環リスト
シンプルで効率的な循環バッファ/キューが必要です。を使用する場合std::vector
、これを行う必要があります。
もっと簡単な解決策はありますか?
linux - Linuxカーネルスペース内のリングバッファを読み取る方法は?
システムログをユーザースペースに印刷できるLinuxキャラクタードライバーを書いています。コマンド「dmesg」と同じように。'printk'で出力するすべてのログは、リングバッファという名前のスペースに送信されることを学びました。だから私は質問があります:
- リングバッファはカーネルスペース内にありますか?
- もしそうなら、どうすればカーネル空間内のリングバッファを読み取ることができますか?(dmesg.cのソースコードを読み込もうとしましたが、役に立ちませんでした。)
java - 循環リストに切り替えて簡単にシフト
float と BigDecimal の 2 つの long を含むクラスを持つプライベート配列リストがあります。新しいデータが入ってくると、現在、最も古い要素を削除し、他のすべての要素をシフトしてから、最新の要素を追加しています。これは不必要に多くのメモリを占有していると思います。とにかくこれを円にする方法はあるので、配列内の要素をシフトする必要はありませんか?
以下に、コードの関連部分を含めます。
c - C 循環バッファーの効率の向上
循環バッファ コードの効率を改善するための助けが必要です。
stackoverflow を調べたところ、循環バッファーに関する (ほぼ) すべてのトピックが、そのようなバッファーの使用または循環バッファーの基本的な実装に関するものであることがわかりました。超効率的にする方法についての情報が本当に必要です。
このバッファは、単一の高精度 FPU を備えた STM32F4 マイクロコントローラで使用する予定です。特に write() と readn() 関数を多用する予定です。ここでは文字通り 1 秒間に数百万回の呼び出しを行っているため、数クロック サイクルを削ることで実際に違いが生まれます。
最も重要なコードをここに置きます。完全なバッファ コードはhttp://dl.dropbox.com/u/39710897/circular%20buffer.rarから入手できます。
このバッファの効率を改善する方法について、誰かが私にいくつかの指針を提供できますか?
c - Recv リング バッファとシンプル バッファ
私はクライアントサーバーアプリに取り組んでいます。私のアプリは可変サイズのパケットで動作しており、各パケットには可変長のヘッダーとペイロードがあります。
私のジレンマは、recv を実行するときにパケットを処理するための最良の方法は何かということです。私が遭遇したチュートリアルのほとんどは、リング バッファーの使用を提案していますが、私が知る限り、処理できる最大のパケットのサイズの 2 倍のサイズのバッファーを使用する方が効率的です。
リング バッファーを使用する場合、recv 用に追加のバッファーが必要であり、リング バッファーにバッファーをコピーする必要があります。つまり、リング バッファーにバッファーを挿入するには、1 つまたは 2 つの memcpys を実行する必要があります。
シングル バッファ アプローチを使用する場合、recv 呼び出しに渡すことができるバッファが 1 つだけ必要であり、フル パケットを取得したときにデータをバッファの先頭に移動するための memmove 呼び出しが必要であり、バッファ内に別のパケットに属するデータがまだ存在します。 .
私は何か間違っていますか?
PS。可変長パケットが処理されるソースコード/例を教えていただければ助かります。