-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement: Print Maximum memory usage after scan #788
Comments
ありがとうございます。1つ質問があります。
|
procinfoを確認してみましたが、こちらはLinux用のものでしたのでWindows用のデータ取得は別途検討する必要があります |
こちらのほうがトータルのメモリ利用率の取得は容易なようです。ただし、プロセス単位では表示できなさそうです |
なるほど、確かに可能であれば違うタイミングで取って、最も高い値を出した方が良さそうですが、開始時はまだ少ないはずなので、不要かもしれません。(一回図ってみて、確認したら良いと思いますが) procinfoはlinuxのみだったんですね。。ふむ、、トータルメモリだとHayabusaなのか、他のアプリが影響しているのか分からないので、プロセス単位が良さそうですね。後で他に良い方法がないか調べてみます。 |
@YamatoSecurity ありがとうございます。こちらであれば利用しているプロセスに対してメモリ使用率が取れそうなので実装してみます。 |
simplre-process-statsをcargo.tomlに入れた時にmemchrのバージョンの競合でコンパイルが出来ないことを確認(memchrはHTML出力のために利用してるpulldown-cmarkではmemchr 2.5.0を利用。simple-process-statsはMac用のdarwin-libproc0.2.0がmemchr 2.3台までを指定されている) |
simple-process-statsで問題となっているライブラリ(darwin-libproc0.2.0)の最新版を確認してみましたが、更新されていないのを確認済み。別crateを探す方針とさせてください。 |
下記branchで試してみたところ mi-malloc本体のmi_stats_print_out関数をunsafeで直接呼ぶことでmi-mallocのメモリ統計情報は出力できました。mi_stats_print_out関数(C言語)を直接呼んでいるので、残念ながら出力内容を良い感じにカスタマイズはできないですが...😅 ↑branch実行すると、以下の感じでmi-malloc自身が持つメモリ統計情報(おそらく自プロセスの)が出力されます。 |
@fukusuket 情報提供をしていただき誠にありがとうございます。素晴らしいです。デバッグの側面でもあるため出力に拘る必要は私はないと思いますのでこれで十分だと思います。他OS制限等もドキュメントを見た限りなさそうですね。 @YamatoSecurity unsafe関数ではありますがこれでピーク時(多分解析完了時付近)のメモリが取得できますがどうしましょうか。unsafe関数はなるべく減らすという方針もありますが、debug 用のオプションをつけることでデータを取得するようにするのも良いと思われますがいかがでしょうか。 |
一旦作成判断を行うためissueをreopenします。 |
良いですね。 |
ご確認ありがとうございます🙇
またメモリ統計情報出力タイミングは、以下のどちらのパターンがよいですかね?
|
個人的には追加しても良いと思います
私は解析完了時に出してしまうと、結果の中に埋もれてしまうので最後1回だけの出力で良いかと思っています(Peakのところでその分は出ていると推測) |
そうですね。 |
それでは本機能を作成するということで承りました。 |
承知しました!↓にて作成次第、PRお送りさせていただきます:)
|
手動で最大のメモリ使用を確認するのが大変なので、スキャンが終わったタイミングでメモリ使用を調べて、最後に
Elasped time:
の直前にMaximum memory usage: 1.22 GB
などを出力したいです。(他の例: 100.20 MB等々)調べたら、capやbench-rsのcrateを使うとglobal memory allocatorを変えないといけないので、
procinfo
(https://docs.rs/procinfo/0.4.2/procinfo/pid/fn.statm_self.html )を使ったら良いかも?これで検証する時にメモリ使用率が急増しているかどうか簡単に分かります。
The text was updated successfully, but these errors were encountered: