android怎么获取当前应用程序所占用的内存空间

android怎么获取当前应用程序所占用的内存空间,第1张

File root = EnvironmentgetRootDirectory();

StatFs sf = new StatFs(rootgetPath());

long blockSize = sfgetBlockSize();

long blockCount = sfgetBlockCount();

long availCount = sfgetAvailableBlocks();

Logd("TAG", "block大小:" + blockSize + ",block数目:" + blockCount + ",总大小:"+ blockSize blockCount / (1024 1024) + "MB");

Logd("TAG","可用的block数目::" + availCount + ",可用大小:" + availCount blockSize / (1024 1024)+ "MB");

可以这样,先把下面的批处理存为myprocessmonitorbat

@echo off

@set prc_name=cmdexe

@echo ---------------%date% %time%----------------- >> prc_monlog

@for /f "tokens=5,6 delims= " %%i in ('tasklist ^|find "%prc_name%"') do @echo %prc_name% use memory %%i%%j>> prc_monlog

@echo -------------------------------------------------- >> prc_monlog

@echo >>prc_monlog

把这个文件放在您指定的一个文件夹里,每次运行都会向prc_monlog中生成一条记录。

然后再把该批处理添加到计划任务中,设置您需要的时间间隔即可。

也可以用批处理自己写定时器,但不建议,特别是长期执行的任务,一来不稳定,二来占资源。

‘获取当前的程序内存占用(生成exe后运行):

Private Sub Timer1_Timer()

Dim myUsage As Double

myUsage = RamUsage

Label1Caption = FormatUsage(myUsage) & "K (" & FormatUsage(myUsage / 1024) & " Mb)"

End Sub

Private Function RamUsage(Optional strProcess As String = "") As Double

If strProcess = "" Then strProcess = UCase(AppEXEName) & "EXE" 'Will count the current application as the process if no arguments given

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\\root\cimv2")

Set colProcessList = objWMIServiceExecQuery("SELECT FROM Win32_Process WHERE Name='" & strProcess & "'")

For Each objProcess In colProcessList

RamUsage = objProcessworkingSetSize / 1024

Next

End Function

Private Function FormatUsage(tUsage As Double)

If Int(tUsage) = tUsage Then

If tUsage = 0 Then

FormatUsage = 0

Else

FormatUsage = Format(tUsage, "###,###")

End If

Else

FormatUsage = Format(tUsage, "###,####")

End If

End Function

DOS 命令

tasklist

可以列出详细信息。

C 语言:

system("tasklist >> alog");

把列出的信息存入 alog 文件。

代码如下:

文件已经上传

@echo off&Setlocal EnableDelayedExpansion

:start

cls

echo                 请输入进程名,如  notepadexe

echo                      直接回车查看  explorerexe

set /p use=

if "%use%"=="" set use=explorerexe

for /f "skip=2 tokens=2 delims==" %%i in (

'wmic process where "name='%use%'" get KernelModeTime^,UserModeTime /value'

) do (

set "x=!x! %%i"

)

call :Div %x% 5

>nul pause&exit /b

:Div

::不支持超大数和浮点

Setlocal EnableDelayedExpansion

set "dnd=%~1"&set "dsr=%~2"&set "dec=%~3"

if %dsr% equ 0 echo 除数不能是0!&goto :EOF

set/a x=%dnd%/%dsr%

if %x% equ 0 (

if %dnd% lss 0 (if %dsr% gtr 0 set "x=-0") else if %dsr% lss 0 set "x=-0"

)

if not defined dec set "dec=8"

if %dec% equ 0 echo %x%&goto :EOF

for /l %%i in (1 1 %dec%) do (

set/a dnd=^(a=!dnd!%%%dsr%^)10,b=dnd/%dsr%

set "y=!y!!b!"

)

echo CPU使用率:%x%%y:-=%%%

Endlocal

goto :EOF

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:(1)top top命令是Linux下常用的性能分析工具

以上就是关于android怎么获取当前应用程序所占用的内存空间全部的内容,包括:android怎么获取当前应用程序所占用的内存空间、请教大神:批处理,定时获取某进程内存、VB获得其他程序的内存使用情况!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9522341.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存