国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用c#實現一個計算程序啟動時間的構想

2024-07-21 02:17:30
字體:
來源:轉載
供稿:網友

 

昨天同屋的兄弟來找我和森哥幫忙,說他的任務的問題,他需要做一個類似任務管理器的東西,能對系統中的進程進行監視,得到內存占用率和cpu占用率,由此來測試公司的某產品和word的性能差別,如啟動時間,內存占用率等。他已經研究了半個月了,關于用c++如何實現,看著那些代碼就頭大,為了快速實現(反正無所謂用什么語言),森哥說,用c#,快!所以我就幫了他忙,查msdn,現寫了一個小程序,作為需求分析吧,鋪好路后就可以任車弛騁了嘛!以下是代碼片斷:

   1:  private void button1_click(object sender, system.eventargs e)
   2:  {
   3:      process.start("winword.exe");
   4:      
   5:      system.diagnostics.process[] myprocesses;
   6:      myprocesses = 
   7:          system.diagnostics.process.getprocessesbyname("foobar2000");
   8:      
   9:      string s = myprocesses[0].totalprocessortime.tostring()+"/n";
  10:      s += myprocesses[0].userprocessortime.tostring()+"/n";
  11:      s += myprocesses[0].privilegedprocessortime.tostring()+"/n";
  12:      myprocesses = 
  13:          system.diagnostics.process.getprocessesbyname("xdict");
  14:      s += myprocesses[0].totalprocessortime.tostring()+"/n";
  15:      s += myprocesses[0].userprocessortime.tostring()+"/n";
  16:      s += myprocesses[0].privilegedprocessortime.tostring()+"/n";
  17:      s += myprocesses[0].starttime.tostring();
  18:      messagebox.show(s,"");
  19:      messagebox(myprocesses.getvalue().tostring());
  20:      foreach (system.diagnostics.process instance in myprocesses)
  21:      {
  22:          instance.waitforexit(3000);
  23:          instance.closemainwindow();
  24:      }
  25:   
  26:  }

主要就是用c#準備好的process類,其中有一個方法是start,傳入進程名,就可以啟動某進程,如啟動word,就可以使用第三行那樣的方式。這樣的話,就可以做一個按鈕來觸發某個程序的運行,用starttime來獲取啟動的時間,并且每一秒鐘獲取一次進程的cpu占用(用totalprocessortime這個屬性),用totalprocessortime/1s,這樣就算是cpu占用率/1s,可能會不精確,但是暫時還沒有想到更精確的方式,然后做一個統計,累加時間,直到cpu占用率降到零的時候,停止計時,這樣得到的時間就是程序的大致啟動時間,在理想的狀態下,總比用秒表計時準確吧,公司的某產品用秒表計時還記得過來,可是word 2003一閃而過啊。如果要精確些還可以用比1s更小的單位,精確程度,我想就是執行start和得到starttime之間有指令延時,以及得到cpu總時間和除法花去的時間,這都是造成誤差的時間,但是我想現在cpu速度這么快,總比人用手計時快,有什么更好的方法,還要繼續研究。c#確實,有.net framework給它撐腰,很多事情都不用程序員做了,難以想象c++實現這個的難度,不過,如果能直接得到cpu占用率,豈不更妙?
這個程序稍微完善一下就可以交工了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永靖县| 桦甸市| 昌江| 乌拉特中旗| 内丘县| 逊克县| 曲沃县| 阿尔山市| 汉源县| 黔西县| 和静县| 南投县| 阿克陶县| 襄樊市| 临邑县| 乾安县| 柏乡县| 波密县| 繁昌县| 海门市| 桃园县| 扎鲁特旗| 澜沧| 清水河县| 东山县| 邵阳市| 仁布县| 西城区| 宿迁市| 正镶白旗| 泸西县| 炉霍县| 长宁区| 台安县| 昔阳县| 招远市| 秦安县| 威信县| 泸西县| 漳浦县| 丽江市|