nakaguchi:main
nakaguchi:feature/adopt-fork-crash-memory-perf
上流 v1.6 から派生したフォークの改善をまとめて提出します.主軸は クラッシュ修正・メモリリーク修正・性能改善です.上流 v1.7(メモリ 使用効率化)も取り込み済みで,本ブランチは v1.7 に対してクリーンに マージできます(v1.7 を先に取り込んでいるため衝突・遅れなし).
各変更の「状況 → 具体差分」は docs/変更まとめ_v1.6-v1.7から.md に まとめてあります.
docs/変更まとめ_v1.6-v1.7から.md
_shots
List<Mat>
BlockingCollection
ColorCorrector.ConvertImage
using
CalcTcc
ColorCorrector
CameraBase
tccRgb
imgRois
Invalidate()
new Bitmap(bmp)
LockBits
RtlMoveMemory
FastClone
Cameras/
ColorCorrection/
ChartDetection/
UI/
Utils/
IScam
Lucam
WHITEBOARD
MEMMONITOR
概要
上流 v1.6 から派生したフォークの改善をまとめて提出します.主軸は クラッシュ修正・メモリリーク修正・性能改善です.上流 v1.7(メモリ 使用効率化)も取り込み済みで,本ブランチは v1.7 に対してクリーンに マージできます(v1.7 を先に取り込んでいるため衝突・遅れなし).
各変更の「状況 → 具体差分」は
docs/変更まとめ_v1.6-v1.7から.mdに まとめてあります.クラッシュ修正
_shots(List<Mat>)を 無保護共有しリサイズ競合・TOCTOU で落ちていた →BlockingCollectionによる生産者-消費者に置換ColorCorrector.ConvertImageの中間 Mat 未解放で数十 GB 積み上がり OOM → 入れ子usingで確定解放メモリリーク修正
CalcTcc(ColorCorrector/CameraBase)で 中間 Mat・旧変換行列・tccRgb/imgRoisが未解放だった分を解放. v1.7 が校正経路で行ったメモリ修正に相当する箇所を本フォークでも 解消し,v1.7 の狙いを内包性能改善
Invalidate()洪水を 全廃し,両プレビューを ~30fps の UI タイマー駆動に統一new Bitmap(bmp)(~46ms)をLockBits+RtlMoveMemoryのFastClone(~2.6ms)に置換定量結果(実機・同一プロトコル計測)
その他(挙動不変)
Cameras/ColorCorrection/ChartDetection/UI/Utils/に再編,IScam/Lucamの重複フローを テンプレートメソッドに集約.この再編のため diff は大きく見えますが 挙動は不変ですWHITEBOARD)・メモリ観測 (MEMMONITOR)をビルドフラグで分離検証