トップページ > 記事閲覧
Android版:CPUとメモリ使用量
名前:BayLeaf 日時: 2018/10/05 16:21

いつもお世話になっております。 Windows版ではデバッグでメモリ等を確認しながら実行できますが、 Android版のデバッグではアプリ外で確認することができないと思います。 アプリ内で確認したいので、オススメの取得処理・方法があれば教えてください。 できればインクルードを増やさない方法でお願いします。
メンテ

Page: 1 |

Re: Android版:CPUとメモリ使用量 ( No.1 )
名前:管理人 日時:2018/10/07 02:05

端末のメモリの総量と空きメモリを取得する関数を追加しましたので、よろしければダウンロードしてください https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース 以下の関数を追加しました // メモリ情報を取得する // TotalMemory : 総メモリ容量を代入する変数( 単位:byte )、( 情報の取得が不要な場合は NULL を渡す ) // FreeMrmoyy : 空きメモリ容量を代入する変数( 単位:byte )、( 情報の取得が不要な場合は NULL を渡す ) int GetAndroidMemoryInfo( LONGLONG *TotalMemory, LONGLONG *FreeMemory ) ; CPU使用率については、どうも調べた限りでは Android 8.0 から普通のアプリからはCPU使用率の情報が 取得できなくなってしまったようなので、8.0 より前のバージョンでのみ使えて、いずれ使えなくなる関数を 追加しても仕方ないと思い実装しませんでした
メンテ
Re: Android版:CPUとメモリ使用量 ( No.2 )
名前:BayLeaf 日時:2018/10/07 23:54

関数の追加ありがとうございます。 特に異常もなく実行できました。 ただ、想定していた関数と相違がありまして、 「アプリ単体」のメモリ使用量の取得を考えていたので もう少し具体的に示すべきでした、申し訳ありません。 メモリの増減具合で大雑把に判断することは可能ですが、 バックグラウンドで動いているアプリなどによる影響により 正確なメモリ使用量が取得できないと思いますので できれば「アプリ単体」のメモリ使用量を取得したいです。 難しくなければ実装をお願いしたいのですが可能でしょうか? > CPU使用率については、どうも調べた限りでは Android 8.0 から普通のアプリからはCPU使用率の情報が > 取得できなくなってしまったようなので、8.0 より前のバージョンでのみ使えて、いずれ使えなくなる関数を > 追加しても仕方ないと思い実装しませんでした 了解しました。 CPU使用率については他に取得できる情報で判断しようと思います。
メンテ
Re: Android版:CPUとメモリ使用量 ( No.3 )
名前:管理人 日時:2018/10/09 02:58

> ただ、想定していた関数と相違がありまして、 > 「アプリ単体」のメモリ使用量の取得を考えていたので > もう少し具体的に示すべきでした、申し訳ありません。 なるほど、そういうことだったのですね アプリ単体のメモリ使用量を取得するための引数を追加しましたので、よろしければダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース 関数の引数は以下のようになりました // TotalMemory : 総メモリ容量を代入する変数( 単位:byte )、( 情報の取得が不要な場合は NULL を渡す ) // // FreeMrmoyy : 空きメモリ容量を代入する変数( 単位:byte )、( 情報の取得が不要な場合は NULL を渡す ) // // UseMemory : アプリが使用しているメモリ容量を代入する変数( 単位:byte )、( 情報の取得が不要な場合は NULL を渡す ) // ( 使用メモリ量の取得は非常に処理負荷が高いので、不要な場合は必ず NULL を渡すようにしてください ) int GetAndroidMemoryInfo( LONGLONG *TotalMemory, LONGLONG *FreeMemory, LONGLONG *UseMemory ) ; ただ、注釈にも書いてありますとおり、何でか分かりませんがめちゃくちゃ重いです 1フレームに1回呼んでいたらそれだけで 25FPSくらいまでフレームレートが落ちてしまうほどです なので、1秒に1回や、数秒に1回の頻度で使用するのが良いと思います…
メンテ
Re: Android版:CPUとメモリ使用量 ( No.4 )
名前:BayLeaf(解決) 日時:2018/10/14 22:50

ありがとうございます。 無事に実行することができましたので解決済みとします。 > ただ、注釈にも書いてありますとおり、何でか分かりませんがめちゃくちゃ重いです > 1フレームに1回呼んでいたらそれだけで 25FPSくらいまでフレームレートが落ちてしまうほどです 確かに重いですね…。ソースを見る限り他のメモリ容量処理よりも重くなるのは必然かなと思いましたが、 それでも不自然に重い気がします。 ちなみに自分の環境では倍の回数分呼び出していたので 10FPSすらも出なくなってしまいました。 取り敢えずは頻繁に取得しないようにします。 もし重い原因が分かりましたらご一報ください。 (なんとなく intArray_Element 付近が怪しい気がしますが、余分な処理はないように見えます)
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存