Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メモリ使用率取得したいけど、簡単に取得できない - 仕方ない作るか-MemStat.Net作りました
Search
Tomohisa Takaoka
October 26, 2024
2
240
メモリ使用率取得したいけど、簡単に取得できない - 仕方ない作るか-MemStat.Net作りました
メモリ使用率取得したいけど、簡単に取得できない - 仕方ない作るか。
1. メモリ使用率が欲しいとき
2. マルチプラットフォームの対応
3. Nugetでのリリース
4. まとめ
Tomohisa Takaoka
October 26, 2024
Tweet
Share
More Decks by Tomohisa Takaoka
See All by Tomohisa Takaoka
.NET でアクターモデルをOrleansかDaprでやりたい
tomohisa
0
180
2年間の実運用を経て振り返るイベントソーシングの実際
tomohisa
4
1.2k
イベントソーシング・CQRSで、ドメイン駆動設計をシンプルかつ柔軟に実践する
tomohisa
7
7.7k
.NET Aspireの新機能を使ってみる
tomohisa
0
230
Functional Event Sourcing using Sekiban
tomohisa
0
170
DDDを突き詰めていったら、 イベントソーシングに 流れ着いた話
tomohisa
3
530
OSSの認証サービス Keycloak を.NETから使ってみた-Aspireとコンテナで使える簡単IDaaS
tomohisa
2
1.1k
そろそろイベントソーシング・CQRSを使ってみてもいい頃なんじゃない?
tomohisa
6
4.3k
関数型ドメインモデリングを 非関数型のプログラミング言語で やってみた
tomohisa
8
4.3k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Typedesign – Prime Four
hannesfritz
40
2.5k
Adopting Sorbet at Scale
ufuk
74
9.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Raft: Consensus for Rubyists
vanstee
137
6.7k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Mobile First: as difficult as doing things right
swwweet
222
9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Transcript
メモリ使⽤率取得したいけど、簡 単に取得できない - 仕⽅ない作る か。 MemStat.Net作りました #dotnetlab
⾃⼰紹介 高丘 知央 ( Tomohisa Takaoka ) 株式会社ジェイテックジャパンCTO イベントソーシング・CQRSフレームワーク Sekiban
メンテナ 鉄道指向プログラミングライブラリ ResultBox 開発 米国カリフォルニア州ロングビーチ在住(ロスの近く) • X : @tomohisa • Github : @tomohisa • Linkedin : tomohisatakaoka 自作キーボード、3Dプリント自作トラックボール製作 London Tech Talk ポッドキャストとブッククラブ出演 #dotnetlab 🆗
株式会社ジェイテックジャパンの紹介 • 創業50年を超えた総合IT企業、株式会社 ジャパンテクニカルソフトウェア (JTS) のグループ企業。 • New York 所在
J-Tech Creations, Inc. と 協業 • B2C / B2B アプリケーションを 開発‧運⽤するソフトウェア開発企業。 • .NET‧Azure 等 Microsoft の 技術スタックを主に使⽤。 #dotnetlab 🆗
概要 メモリ使⽤率取得したいけど、簡単に取得 できない - 仕⽅ない作るか。 1. メモリ使⽤率が欲しいとき 2. マルチプラットフォームの対応 3.
Nugetでのリリース 4. まとめ #dotnetlab 🆗
メモリ使⽤率取得したいけど、簡単に 取得できない - 仕⽅ない作るか。 1.メモリ使⽤率が欲しいとき
#dotnetlab 🆗 Sekiban - イベントソーシング・ CQRSフレームワーク • イベントソーシングは過去のイベントを再生してステートを作成する • 毎回データベース(Cosmos
DB, Dynamo DB or Postgres)にイベントを取りに 行くと遅い • イベントのローカルキャッシュ機能を作りたい • 無制限に保続したくない • → メモリの残量によってコントロールしたい • メモリ残量をマルチプラットフォームで知る機能が...ない • 仕方なく作るか。 メモリ使⽤率取得したいけど、簡単に取得できない - 仕⽅ない作るか。 1.メモリ使⽤率が欲しいとき
メモリ使⽤率取得したいけど、簡単に 取得できない - 仕⽅ない作るか。 2.マルチプラットフォームの対応
#dotnetlab 🆗 マルチプラットフォーム対応 • Windows(ローカル実行,Azure) Linux (Azure) Mac (ローカル実行)で対応した い
• Windows ◦ Microsoft.VisualBasic → なぜか使用できなくなっている ◦ 既存のGithub NickStrupat / ComputerInfo → Azure App Serviceで使え ない ◦ GlobalMemoryStatusEx を使う実装を発見 kernel32.dll メモリ使⽤率取得したいけど、簡単に取得できない - 仕⽅ない作るか。 2.マルチプラットフォームの対応
#dotnetlab 🆗 マルチプラットフォーム対応 • Mac ◦ vm_stat コマンドをプロセスで呼び出しパースする メモリ使⽤率取得したいけど、簡単に取得できない -
仕⽅ない作るか。 2.マルチプラットフォームの対応
#dotnetlab 🆗 マルチプラットフォーム対応 • Mac ◦ free コマンドをプロセスで呼び出しパースする ◦ この辺はChatGPT駆動でなんとかなった
メモリ使⽤率取得したいけど、簡単に取得できない - 仕⽅ない作るか。 2.マルチプラットフォームの対応
メモリ使⽤率取得したいけど、簡単に 取得できない - 仕⽅ない作るか。 3.Nugetでのリリース
#dotnetlab 🆗 とりあえず Sekiban内部のProjectとしていたが ... • LTするならみんなが簡単に使えるといいかも ◦ 慌ててnuget リリース
(午後3:30ごろ) https://www.nuget.org/packages/MemStat.Net • Azure App Serviceで使えるのを確認 • Azure Function • AWS メモリ使⽤率取得したいけど、簡単に取得できない - 仕⽅ない作るか。 3.Nugetでのリリース
メモリ使⽤率取得したいけど、簡単に 取得できない - 仕⽅ない作るか。 4.まとめ
まとめ • メモリ使⽤量は結構しれると嬉しい気がする • メモリ使⽤量を知らずして解放の必要性を知る⽅ 法があったら知りたい ◦ GCなど? • Nugetリリース慣れしたので、どんどんリリース
• よかったらご使⽤ください #dotnetlab 🆗
質問、感想などありましたらXなどで連絡ください @tomohisa Sekibanはこちら https://github.com/J-Tech-Japan/Sekiban ResultBoxはこちら https://github.com/J-Tech-Japan/ResultBoxes MemStat.Netはこちら https://www.nuget.org/packages/MemStat.Net J-Tech Japan
Tech Blog https://zenn.dev/p/jtechjapan_pub おわり #dotnetlab 🆗