C#如何读取当前进运的进程及进程占有的内存大小

C#如何读取当前进运的进程及进程占有的内存大小,第1张

废话少说,上代码

Process CurrentProcess = ProcessGetCurrentProcess();

CurrentProcessIdToString();//PID

((Double)(CurrentProcessTotalProcessorTimeTotalMilliseconds-CurrentProcessUserProcessorTimeTotalMilliseconds))ToString();//CPU

(CurrentProcessWorkingSet64 / 1024 / 1024)ToString() + "M (" + (CurrentProcessWorkingSet64 / 1024)ToString() + "KB)";//占用内存

CurrentProcessThreadsCountToString();//线程

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");

用free命可以查看总的系统内存占用和空闲情况

使用ps

top

命令可以查看某一程序内存使用情况

程序使用内存状况是动态的查看的只是某一时间点的内存情况

这与C语言自身无关,属于运行时 *** 作系统的问题,应该借助于 *** 作系统的进程内存分配去向 *** 作系统查询。如果用C语言的内存管理函数去计算,会相当麻烦,而且计算方法随着 *** 作系统平台的不同而变化。

如果是在Windows环境运行,可以使用Windows的API函数GlobalMemoryStatusEx,返回的结构中dwTotalVirtual的值与最大值之间的差,就是当前进程所占用的内存空间大小。

‘获取当前的程序内存占用(生成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

以上就是关于C#如何读取当前进运的进程及进程占有的内存大小全部的内容,包括:C#如何读取当前进运的进程及进程占有的内存大小、android怎么获取当前应用程序所占用的内存空间、如何在linux中查看程序占用的内存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存