zoukankan
html css js c++ java
一个简单的进程察看器
using
System;
using
System.Diagnostics;
namespace
ProcessManager
{
/**/
///
<summary>
///
Summary description for Class1.
///
</summary>
class
MainEntry
{
/**/
///
<summary>
///
The main entry point for the application.
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
if
(args.Length
<
1
)ListProcesses();
else
if
(args[
0
].Length
>
0
)ListProcess(args[
0
]);
}
private
static
void
ListProcesses()
{
string
output
=
""
;
int
limit
=
36
;
Console.WriteLine(
"
PID
"
.PadRight(
6
)
+
"
Name
"
.PadRight(
16
)
+
"
Memory
"
.PadLeft(
10
)
+
"
VM size
"
.PadLeft(
10
)
+
"
Threads count
"
.PadLeft(
20
));
Console.WriteLine(
"
-
"
.PadRight(limit
+
34
,
'
-
'
));
foreach
(Process proc
in
Process.GetProcesses())
{
string
pid
=
proc.Id.ToString();
string
pname
=
proc.ProcessName;
string
pcount
=
proc.Threads.Count.ToString();
string
pmemsize
=
(proc.PeakWorkingSet
/
1024
).ToString()
+
"
K
"
;
string
pvmsize
=
(proc.PeakPagedMemorySize
/
1024
).ToString()
+
"
K
"
;
output
=
String.Format(
"
{0}{1}{2}{3}{4}
"
,pid.PadRight(
6
),pname.PadRight(
16
),pmemsize.PadLeft(
10
),pvmsize.PadLeft(
10
),pcount.PadLeft(
10
));
Console.WriteLine(output);
}
}
private
static
void
ListProcess(
string
processid)
{
int
pid
=
-
1
;
try
{
pid
=
Convert.ToInt32(processid);
}
catch
{
}
if
(
-
1
==
pid)
{
Console.WriteLine(
"
Invalid processID!
"
);
return
;
}
string
output
=
""
;
Process proc
=
null
;
try
{
proc
=
Process.GetProcessById(pid);
}
catch
{
}
if
(
null
==
proc)
{
Console.WriteLine(
"
Invalid processID!
"
);
return
;
}
Console.WriteLine(
"
PID:
"
+
proc.Id.ToString());
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
//
Console.WriteLine("Main Module");
//
Console.WriteLine("-".PadRight(50,'-'));
Console.WriteLine(
"
Module Name
"
.PadRight(
50
)
+
"
Memory Size
"
);
WriteModuleInformation(proc.MainModule);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
//
Console.WriteLine("All Modules");
//
Console.WriteLine("-".PadRight(50,'-'));
Console.WriteLine(
"
Module Name
"
.PadRight(
50
)
+
"
Memory Size
"
);
foreach
(ProcessModule pm
in
proc.Modules)WriteModuleInformation(pm);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
Console.WriteLine(
"
Thread List:
"
);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
Console.WriteLine(
"
ID
"
.PadRight(
6
)
+
"
Thread State
"
.PadRight(
20
)
+
"
Total Processor Time
"
);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
foreach
(ProcessThread pt
in
proc.Threads)
{
output
=
String.Format(
"
{0}{1}{2}
"
,pt.Id.ToString().PadRight(
6
),pt.ThreadState.ToString().PadRight(
20
),pt.TotalProcessorTime);
Console.WriteLine(output);
}
}
private
static
void
WriteModuleInformation(ProcessModule pm)
{
Console.WriteLine(String.Format(
"
{0}{1}
"
,pm.ModuleName.PadRight(
50
),(pm.ModuleMemorySize
/
1024
).ToString().PadLeft(
10
)
+
"
K
"
));
}
}
}
查看全文
相关阅读:
带宽利用率提升50%,腾讯云联网架构方案解析
重构实践:基于腾讯云Elasticsearch搭建QQ邮箱全文检索
存算分离下写性能提升10倍以上,EMR Spark引擎是如何做到的?
秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
降本提效,贝壳搜索推荐架构统一之路
亿级用户,腾讯看点信息流推荐系统的架构挑战
优秀程序员,如何提高架构能力?
如何创建体元栅格?
导出属性表字段结构
去除镶嵌数据集中影像的黑边或白边
原文地址:https://www.cnblogs.com/juqiang/p/51322.html
最新文章
DevOps
关于Primavera P6版本选择上的一些看法
为什么90%的职业目标最终无效?这是我知道的最好的答案!
什么是Shell
Linux中编写Shell脚本
解决 Docker 日志文件太大的问题
团队管理21--梯队培养
异步编程的几种方式
iOS开发中的Web应用概述
WKWebView 是一个多进程组件
热门文章
crash 分析
iOS 逆向
fishhook ios
虚拟内存的状态 SIGBUS is_available 物理地址无效
WKWebView NSURLProtocol
NSURLSession数据缓存(NSURLCache)
会话层--建立会话,维护上下文
张不坏的博客
WKWebview使用二三事
WKWebView 资料
Copyright © 2011-2022 走看看