• <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>
            隨筆-59  評論-36  文章-0  trackbacks-0

            近來遇見了這樣一個問題:
            顯示界面時需要將一個Gdiplus::Bitmap對象的內(nèi)容貼在界面上,而其中的內(nèi)容又是不停的變化的,于是問題來了,我是對Bitmap對象通過調(diào)用Graphics::Clear重置呢,還是把這個Bitmap對象搞成局部變量每次進(jìn)來時都新建一個呢?

            傻X的我起初一直以為通過Clear函數(shù)重置Bitmap要比調(diào)用Bitmap的構(gòu)造函數(shù)新建快,所以我盡力重復(fù)利用已有的Bitmap對象而避免重建,但昨天測試了一下發(fā)現(xiàn)新建要比重置快得多

            這是我的測試方法: 對比重復(fù)創(chuàng)建一個100×100的Bitmap和重置同樣尺寸的Bitmap對象所用的時間

            環(huán)境
              系統(tǒng):XP SP3
              CPU:AMD Athlon II X2 245      2.96G
              內(nèi)存:2G
              環(huán)境:VC 2008 sp1 

                {
                    CString tmp;
                    SYSTEMTIME   begintime,endtime,passtime;
                    ZeroMemory(
            &begintime , sizeof(SYSTEMTIME));
                    ZeroMemory(
            &endtime , sizeof(SYSTEMTIME));
                    GetLocalTime(
            &begintime); 
                    
            for (int i = 0 ; i < 100000 ; i++)
                    {
                        Gdiplus::Bitmap Auto(
            100,100);
                    }
                    GetLocalTime(
            &endtime); 


                    tmp.Format(_T(
            "%dms") , (endtime.wSecond - begintime.wSecond)*1000 + endtime.wMilliseconds - begintime.wMilliseconds);

                    MessageBox(tmp);
                }

                {
                    CString tmp;
                    SYSTEMTIME   begintime,endtime,passtime;
                    ZeroMemory(
            &begintime , sizeof(SYSTEMTIME));
                    ZeroMemory(
            &endtime , sizeof(SYSTEMTIME));
                    CDC 
            *pDC = GetDC();

                    Gdiplus::Graphics grap (pDC
            ->m_hDC);
                    Gdiplus::Bitmap   AutoBmp(
            100,100);
                    Gdiplus::Graphics 
            *pGrap = grap.FromImage(&AutoBmp);
                    Gdiplus::Color newcolor(
            0,0,0,0);
                    GetLocalTime(
            &begintime); 
                    
            for (int i = 0 ; i < 100000  ; i++)
                    {
                        pGrap
            ->Clear(newcolor);
                    }
                    GetLocalTime(
            &endtime); 
                    tmp.Format(_T(
            "%dms") , (endtime.wSecond - begintime.wSecond)*1000 + endtime.wMilliseconds - begintime.wMilliseconds);
                    MessageBox(tmp);
                }


            結(jié)果:
            當(dāng)循環(huán)1W次時所用時間(單位MS)
                         構(gòu)造函數(shù)新建對象     Graphics::Clear重置
                                  62                                     344
                                  62                                     344
                                  47                                     344
                                  62                                     343
                                  47                                     344
                                  62                                     360
                                  63                                     344
                                  47                                     344
                                  62                                     344
                                  62                                     343
            ----------------------------------------------------
            平均             57.6                                 345.4

            當(dāng)循環(huán)10W次時所用時間
                         構(gòu)造函數(shù)新建對象     Graphics::Clear重置
                                  563                                   3467
                                  562                                   3407
                                  578                                   3531
                                  563                                   3563
                                  625                                   3390
                                  578                                   3515
                                  562                                   3484
                                  594                                   3515
                                  547                                   3453
                                  563                                   3422
            ----------------------------------------------------
            平均             573.5                                 3474.9


            posted on 2010-12-23 09:45 zhaoyg 閱讀(2635) 評論(1)  編輯 收藏 引用 所屬分類: other

            評論:
            # re: 對于Gdiplus::Bitmap對象的重置和新建誰快誰慢 2012-06-29 14:42 | as
            你可以用純色填充一下  回復(fù)  更多評論
              
            久久精品成人免费网站| 久久激情五月丁香伊人| 伊人久久综合成人网| 久久国产高清字幕中文| 久久99精品久久久久久秒播| 亚洲日韩欧美一区久久久久我| 久久久一本精品99久久精品66| 亚洲综合久久综合激情久久| 99久久国产亚洲综合精品| 久久午夜电影网| 国产A三级久久精品| 国产一区二区精品久久岳| 囯产极品美女高潮无套久久久| 久久夜色tv网站| 久久综合给合久久狠狠狠97色69| 91精品国产高清久久久久久国产嫩草| 亚洲欧美精品一区久久中文字幕| www.久久热.com| 97香蕉久久夜色精品国产 | 性做久久久久久久久久久| 亚洲精品国产字幕久久不卡| 久久国产香蕉视频| 美女写真久久影院| 久久99国产综合精品| 国内高清久久久久久| 久久婷婷五月综合97色直播| 青青草原综合久久| 国产精品18久久久久久vr| 亚洲精品国产字幕久久不卡| 亚洲国产香蕉人人爽成AV片久久| 久久99亚洲综合精品首页| 国产精品一区二区久久| 国产成人久久精品激情| 国产国产成人精品久久| 狠狠色丁香婷婷综合久久来| 久久电影网一区| 国产精品成人无码久久久久久| 久久综合狠狠综合久久激情 | 久久精品国产亚洲一区二区| AAA级久久久精品无码区| 久久国产成人午夜AV影院|