1
/
5

【C#開発ノート】メキキバイト-内部実装+マルチスレッドのデバッグ方法

メキキバイトソフトウェア開発チーフの和田悟です。

私、入社前に、プロダクトの開発環境や技術レベルは、知っておきたい派です。

弊社は様々なプロダクトがありますが、私はメキキバイトを作っています。

c#の知見高めたい・フツパーの技術が知りたい方は是非お読みくださいませ。

目次

  • メキキバイトとは?

  • メキキバイトのソフトウェアの内部実装

  • マルチスレッドのデバッグ方法

  • 次回

メキキバイトとは?

メキキバイトとは、外観検査のプロダクトです。機能は、以下のことが出来ます。

  • ベルトコンベア上などに流れる製品に不良があったら排除(空気圧やフリッパー)
  • AI作成のための画像収集&SaaS(Hutzper Insight)にアップロード
  • 検査画像をSaaS(Hutzper Insight)に送信
  • SaaS上で統計データを確認出来る。

メキキバイトの詳細はコチラ

【FOOMAアワード2024】審査委員会賞を受賞いたしました🏆 | News
フツパーの製造業向け外観検査&品質管理AI『メキキバイト』が、(一社) 日本食品機械工業会が主催する、第3回FOOMAアワード2024において審査委員会賞を受賞いたしました!FOOMAアワードは...
https://www.wantedly.com/companies/hutzper/post_articles/907207

メキキバイトのソフトウェアの内部実装

ざっくり、以下のようになっています。

  • c# .net6.0 (近日に8.0にする予定)
  • メキキバイトのソフトウェア1つで、全ての案件を柔軟にこなせます。(例外アリ)
    • 例)カメラ1台・IOデバイス1台
    • 例)ラインカメラ2台(裏表用)・照明1台・IOデバイス1台
    • 例)カメラ6台(裏+上+横4面)・照明2台・IOデバイス1台
    • などなど...
  • いろいろなデバイスに対応
    • 数種類の産業用カメラメーカ対応と台数
    • 数種類のデジタルIOデバイス
    • 数種類の照明デバイス
  • AIモデル
    • 弊社作成のSaaSで作った数種類のAIモデルに対応
  • エラー対策
    • 様々な問題の捕捉と対策
    • 問題が起きたら社内slackに通知
  • 0から全てスクラッチでコードを書いています。全て内製コードです。(パッケージは多用。)
  • コンピューターサイエンス
    • CPU使用率を下げれるだけ下げています
    • マルチスレッドで良く起きる問題と対策

マルチスレッドのデバッグ方法

たくさんのスレッドを制御していると、ある地点において、各スレッドがいまどうなっているか確認したいことがあります。そういった際にTracyを使うと、楽に確認が出来ます。

以下は、メキキバイトアプリケーションを動かしながら、tracyで確認している様子です。

Tracy上に表示させるには以下のコードを埋め込むことで計測が可能になります

using (Profiler.BeginEvent("TaskInference.Execute"))

{
/* 何かしらの処理 */
/* このように書くとTracy上で計測可能になる */
}

github:

GitHub - wolfpld/tracy: Frame profiler
Frame profiler. Contribute to wolfpld/tracy development by creating an account on GitHub.
https://github.com/wolfpld/tracy

デモサイト:https://tracy.nereid.pl

次回

スレッドを上手に使うために、たくさんの制御方法があります。

参照 System.ThreadingSystem.Collections.Generic など。

弊社でよく使っているのは以下です。(多用しすぎても理解大変なので一部だけ使うようにしています)

  • ManualResetEvent
  • Lock
  • InterLock
  • ConcurrentDictionary
  • ConcurrentQueue

基本的にロックフリーなコンテナやアトミック演算でなんとかして、なるべくロックしないような作りを目指しています。この辺り、メキキバイトでは実際にどうつかっているのか書きます。

次回以降も技術記事書いていくので、気になる方はフォローよろしくお願いします。

株式会社フツパーでは一緒に働く仲間を募集しています
2 いいね!
2 いいね!

同じタグの記事

今週のランキング