簡易的windows下命令行統計程序運行時間程序

熟悉的Unix的朋友都知道Unix下有一個功能強大的 time 函數。但是在windows下是沒有這樣的程序的。

本文參考了別人的寫的這種程序並做了改進。

1.       剖析命令行參數需要用gccgetopt(argc,argv,"hE:p:s") 函數: (PS: 沒有GCC 環境的同學可以用IBM寫的一個windows下的getopt 程序,附件中會給出來。)

 

 

2.       根據路徑啓動程序. 這裏看到有人用 ShellExecute 來實現。這樣實現有個缺點就是無法把程序的輸出展現在當前命令行窗口中。所以我用CreateProcess 來啓動程序,同時把程序的輸出重定位到標準輸出窗口(STDOUT)就可以了。

 

 

3. 統計時間。這裏有很多統計方法: GetTickCount () 或者用更精確的 QueryPerformanceCounter() QueryPerformanceFrequency() 來統計時間。但是MS 提供一個API GetProcessTimes() 可以精確統計這個進程的核心態和用戶態時間,所以這裏用這個來實現。

 

  

 

最後放上效果照片和源程序。

 

圖片查看

 

源碼下載

 

 

總結:

l  學習了 getopt 的使用和源碼

l  熟悉了進程創建和輸出重定位

l  學習了獲取進程運行時間以及QueryPerformanceCounter() QueryPerformanceFrequency()用法。

 

 

(轉載請註明出處)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章