こんにちは!なかぢです。 12月だっていうのに、東京で25℃?!大阪で24℃?!福岡で26℃?!
今年は、半袖でクリスマスかな?(笑)
さて、話は変わりますが、私が過去に参画した案件で勉強になったので、
タイトルの「リングバッファ」について小話したいと思います。
リングバッファ?? 某〇〇〇〇ドーナッツの新商品ではございませんw
リングバッファとは?
日本語で言うと、循環バッファとも言います。データを保持する領域の事をバッファと言い
バッファの開始位置と終端位置が連結されているバッファを指します。
言葉でいうと、イメージがわかないので、下の図のイメージですね。
例えば、SDカードやRAMなどのメモリー媒体にデータを書き込み時にもこの考え方をよく使います。 RAMにデータを書き込んでいくイメージは下記のようなイメージになります。
RAM領域にデータA・データBと既に保存されていますね。この調子でデータを追加していくと
RAM領域の終端に到達してしまう場合が発生します。
お気づきの方もいますね?そう、データCの書き込み終り位置からRAM領域の終端位置までのサイズで保存し、残りの保存していないサイズをRAM領域の先端に保存します。
これが、リングバッファの概念とデータ遷移のイメージですね。あとは、これの繰り返しになります。
ぢゃぁ、残りの分のデータDを先頭から書いたらデータAが居なくなっちゃうじゃないか?!と思われると思いますが、それはそうゆうもんだと思っていただければ(仕様ですw)
例えば、身近な話だと、最近どの車にも増設したり標準装備だったりする、ドライブレコーダー
これのデータ保存の概念はリングバッファの手法で保存しています。(※ほかにもやり方があるので必ずしもそうではないw)
なので、ドライブレコーダーって比較的新しい動画とかは残ってても、古いのは消えてますよね?
ドライブレコーダーのSDカードは、すぐにダメになるという話を聞いたことがあるかもしれませんが、頻繁にデータを保存しているのでその分ダメになるのが早い理由がこれです。
(HDDや、SDカードなどは、読み込み&書き込み回数に上限(閾値)を持っていますので。)
ドライブレコーダーと言えば、巷で問題なっているあおり運転。。。
私も、週末はドライブや買い物に車で移動します。
車が好きなもんで、ああ言った思いやりのない行動には、非常に残念に思います。
ですので、このような技術で世の中の為になっていると思うと、ちょっぴり嬉しいですね。
道具や技術は使い方次第で、人を幸せにできるし人を不幸にもできる。
私は、前者でいたいですね。 なかぢでした。
おまけw