• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 51, 文章 - 1, 評(píng)論 - 41, 引用 - 0
            數(shù)據(jù)加載中……

            簡(jiǎn)易統(tǒng)計(jì)程序運(yùn)行時(shí)間的程序

                     有時(shí)需要計(jì)算程序運(yùn)行時(shí)間,這有許多方法,比如可以在調(diào)用函數(shù)前后記錄時(shí)間,相減就可以得到運(yùn)行時(shí)間。這需要在程序加入記錄代碼。也有方法不需要添加代碼也能統(tǒng)計(jì)。下面的程序是一個(gè)簡(jiǎn)單的計(jì)算運(yùn)行時(shí)間的工具,當(dāng)然和linux下的time無(wú)法相比。
            /* 文件名:running.c
             
            * 計(jì)算程序運(yùn)行時(shí)間 
             
            * author: lemene
             
            * time2008-01-20
             
            */

            #include 
            <windows.h>
            #include 
            <stdio.h>
            #include 
            <getopt.h>

            extern char 
            *optarg; 
            void usage()
            {
                printf(
            "這是一個(gè)簡(jiǎn)易的計(jì)算程序運(yùn)行時(shí)間的工具\(yùn)n");
                printf(
            "usage: CodeCounter [-hEps] [string|n]\n");
                printf(
            "-h          顯示幫助信息\n");
                printf(
            "-E string   需要統(tǒng)計(jì)程序的路徑\n");
                printf(
            "-p string   程序運(yùn)行的參數(shù)\n");
                printf(
            "-s          是否顯示程序運(yùn)行窗口\n");

            }

            void running(
            const char* f, const char* p, int show)
            {
                SHELLEXECUTEINFO   ExeInfo;   
                ZeroMemory(
            &ExeInfo,sizeof(SHELLEXECUTEINFO));   
                ExeInfo.cbSize   
            =   sizeof(SHELLEXECUTEINFO);   
                ExeInfo.lpFile   
            =   f;   
                ExeInfo.fMask   
            =   SEE_MASK_NOCLOSEPROCESS   ;   
                ExeInfo.nShow   
            =   show ? SW_SHOWNORMAL : SW_HIDE;
                ExeInfo.lpParameters 
            = p;
                ShellExecuteEx(
            &ExeInfo);   
                WaitForSingleObject(ExeInfo.hProcess,INFINITE);       
            }

            void err_msg()
            {
                printf(
            "參數(shù)錯(cuò)誤\n");
                printf(
            "running -h 查看幫助信息\n");
            }

            int main(int argc,char **argv)
            {
                char file[MAX_PATH] 
            = {0};
                char param[
            512];
                
            int opt;
                DWORD start;
                
            int show = 0;
                
            while((opt=getopt(argc,argv,"hE:p:s"))!=-1)
                {
                    switch (opt)
                    {
                    
            case 'h':
                        usage();
                        return 
            0;
                    
            case 'p':
                        strcpy(param, optarg);
                        break;
                    
            case 'E':
                        strcpy(file, optarg);
                        break;
                    
            case 's':
                        show = 1;
                        break;
                    default:
                        err_msg();
                        return 
            0;
                    }
                }
                
            if (file[0== 0)
                {
                    err_msg();
                    return 
            0;
                }
                start 
            = GetTickCount();
                running(file, param, show);
                printf(
            "running time: %dms\n", GetTickCount()-start);
                
                return 
            1;
            }
            編譯:gcc -o running.exe running.c -O
            測(cè)試:running -E CodeCounter.py -p "-d d:\dev-cpp -l -1"
            輸出:running time: 12328ms
            (注:CodeCounter.py 程序見(jiàn)《Python寫(xiě)的簡(jiǎn)易代碼統(tǒng)計(jì)工具(2)》


            posted on 2008-03-17 16:22 lemene 閱讀(2206) 評(píng)論(3)  編輯 收藏 引用

            評(píng)論

            # re: 簡(jiǎn)易統(tǒng)計(jì)程序運(yùn)行時(shí)間的程序  回復(fù)  更多評(píng)論   

            謝謝!
            2009-08-13 16:23 | 千張

            # re: 簡(jiǎn)易統(tǒng)計(jì)程序運(yùn)行時(shí)間的程序  回復(fù)  更多評(píng)論   

            不好意思 我是菜鳥(niǎo) 請(qǐng)幫忙解釋如何使用呀
            2009-12-12 11:27 | 000

            # re: 簡(jiǎn)易統(tǒng)計(jì)程序運(yùn)行時(shí)間的程序[未登錄](méi)  回復(fù)  更多評(píng)論   

            以這個(gè)段代碼為例:
            running -E CodeCounter.py -p "-d d:\dev-cpp -l -1"
            它測(cè)試程序CodeCounter.py -d d:\dev-cpp -l -1的運(yùn)行時(shí)間。
            CodeCounter.py 是被測(cè)程序,"-d d:\dev-cpp -l -1"是被側(cè)程序的參數(shù)。
            2009-12-14 21:54 | lemene

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产精品免费福利久久| 久久综合伊人77777麻豆| 久久强奷乱码老熟女网站| 2021最新久久久视精品爱| 久久久一本精品99久久精品88| 亚洲国产精品无码久久九九| 精品久久久中文字幕人妻| 久久er国产精品免费观看2| 一本一道久久a久久精品综合| 久久久精品国产sm调教网站| 九九久久精品国产| 天天躁日日躁狠狠久久| 九九久久精品无码专区| 91久久婷婷国产综合精品青草 | 国产精品免费久久久久久久久| 久久精品国产99国产精品 | 久久精品国产精品青草app| 香蕉aa三级久久毛片| 99久久精品国产一区二区| 国产激情久久久久久熟女老人 | 久久乐国产综合亚洲精品| 国产精品热久久毛片| 久久精品无码午夜福利理论片 | 久久国产三级无码一区二区| 国产韩国精品一区二区三区久久| 久久精品亚洲欧美日韩久久| 99久久精品国产高清一区二区| 日本精品久久久久影院日本| 99久久国产综合精品五月天喷水| 国产精品99久久99久久久| 亚洲国产精品久久久天堂| 国产精品久久新婚兰兰| 性做久久久久久久久久久| 久久99精品国产麻豆婷婷| 精品久久久久久久久久中文字幕| 免费观看久久精彩视频| 国产精品久久久久影院嫩草| 国产精品视频久久久| 久久se精品一区精品二区| 久久不射电影网| 久久精品国产亚洲AV不卡|