用 C# 如何实现查看某程序使用多少内存 和 程序运行的时间

fangsilin 2009-02-01 03:32:57
这是一道作业题,师兄布置给我的。之前本人之接触过C,寒假才开始接触C#,所以只能说有一点基础。


这题我无从下手,想请教一下高手,讲一下思路,或者要点。
谢谢了。
...全文
695 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshisilin 2009-02-04
  • 打赏
  • 举报
回复
应该没错。。

Stopwatch 提供一组方法和属性,可用于准确地测量运行时间。
woshisilin 2009-02-04
  • 打赏
  • 举报
回复
突然发现有个类 Stopwatch。。。。

似乎可以实现这个功能。。研究一下。。

谢谢各位了。。
abcfy2 2009-02-04
  • 打赏
  • 举报
回复
我找不到了……
昨天学文件复制的时候,有段代码就是计算执行实现的。
似乎是开始用datetime捕获系统当前时间,执行完毕以后再捕获系统当前时间,然后做差……
woshisilin 2009-02-04
  • 打赏
  • 举报
回复
我要的是 运行时间,问题是不知道怎么运算,格式转换。
xhlnb 2009-02-04
  • 打赏
  • 举报
回复
http://blog.csdn.net/gisfarmer/archive/2009/02/03/3859709.aspx

这里有你所需要的。
woshisilin 2009-02-04
  • 打赏
  • 举报
回复
我还有一点不明白。
怎么得到持续运行时间??


我的思路是 :获取程序启动时间,然后再获取当前时间,然后相减。

但是两个时间格式 怎么相减?????

woshisilin 2009-02-02
  • 打赏
  • 举报
回复
呵呵,跟我找到的代码一样。
小看了一下,知道了个大概。

谢谢各位大大。。原来用C#写小程序这么容易。

glt3260053 2009-02-02
  • 打赏
  • 举报
回复

private void button1_Click(object sender, System.EventArgs e)
{//获取系统当前所有进程
this.listBox1.Items.Clear();
Process[] MyProcesses=Process.GetProcesses();
foreach(Process MyProcess in MyProcesses)
{
this.listBox1.Items.Add(MyProcess.ProcessName);
}
this.listBox1.SelectedIndex=0;
}

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{//显示选择的系统进程详细信息
try
{
string ProcessName=this.listBox1.Text;
this.groupBox2.Text=ProcessName+"进程的详细信息";
Process[] MyProcess=Process.GetProcessesByName(ProcessName);
this.label1.Text="进程映像名:"+MyProcess[0].ProcessName;
this.label2.Text="进程ID:"+MyProcess[0].Id;
this.label3.Text="启动线程数:"+MyProcess[0].Threads.Count.ToString();
this.label4.Text="CPU占用时间:"+MyProcess[0].TotalProcessorTime.ToString();
this.label5.Text="线程优先级:"+MyProcess[0].PriorityClass.ToString();
this.label6.Text="启动时间:"+MyProcess[0].StartTime.ToLongTimeString();
this.label7.Text="专用内存:"+(MyProcess[0].PrivateMemorySize/1024).ToString()+"K";
this.label8.Text="峰值虚拟内存:"+(MyProcess[0].PeakVirtualMemorySize/1024).ToString()+"K";
this.label9.Text="峰值分页内存:"+(MyProcess[0].PeakPagedMemorySize/1024).ToString()+"K";
this.label10.Text="分页系统内存:"+(MyProcess[0].PagedSystemMemorySize/1024).ToString()+"K";
this.label11.Text="分页内存:"+(MyProcess[0].PagedMemorySize/1024).ToString()+"K";
this.label12.Text="未分页系统内存:"+(MyProcess[0].NonpagedSystemMemorySize/1024).ToString()+"K";
this.label13.Text="物理内存:"+(MyProcess[0].WorkingSet/1024).ToString()+"K";
this.label14.Text="虚拟内存:"+(MyProcess[0].VirtualMemorySize/1024).ToString()+"K";
}
catch(Exception Err)
{
//不处理产生的异常
}
}

private void Form1_Load(object sender, System.EventArgs e)
{
button1_Click(null,null);
}

}

详细显示内存的使用情况和时间
zgke 2009-02-02
  • 打赏
  • 举报
回复
System.Diagnostics.Process[] _Process = System.Diagnostics.Process.GetProcessesByName("进程名称");


里面有你要的内存.和时间..

woshisilin 2009-02-02
  • 打赏
  • 举报
回复
能不能说具体点。。。。。。
CsToD 2009-02-01
  • 打赏
  • 举报
回复
System.Diagnostics.Process

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧