麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C語言中的面向對象(3)-類模擬的性能分析

2019-11-17 05:03:59
字體:
來源:轉載
供稿:網友
 

  類模擬中使用了大量的函數指針,結構體等等,有必須對此進行性能分析,以便觀察這樣的結構對程序的整體性能有什么程度的影響。

  1.函數調用的開銷

#define COUNTER XX
void testfunc()
{
    int i,k=0;
    for(i=0;i<YY;i++){k++;}
}

  在測試程序里面,我們使用的是一個測試函數,函數體內部可以通過改變YY的值來改變函數的耗時。測試對比是 循環調用XX次函數,和循環XX次函數內部的YY循環。

  結果發現,在YY足夠小,X足夠大的情況下,函數調用耗時成為了主要原因。所以當一個“簡單”功能需要“反復”調用的時候,將它編寫為函數將會對性能有影響。這個時候可以使用宏,或者inline要害字。

  但是,實際上我設置XX=10000000(1千萬)的時候,才出現ms級別的耗時,對于非實時操作(UI等等),即使是很慢的cpu(嵌入式10M級別的),也只會在XX=10萬的時候出現短暫的函數調用耗時,所以實際上這個是可以忽略的。

  2.普通函數調用和函數指針調用的開銷

void (*tf)();
tf=testfunc;

  測試程序修改為一個使用函數調用,一個使用函數指針調用。測試發現對時間基本沒有什么影響。(在第一次編寫的時候,發現在函數調用出現耗時的情況下(XX=1億),函數指針的調用要慢(release版本),調用耗時350:500。后來才發現這個影響是由于將變量申請為全局的原因,全局變量的訪問要比局部變量慢很多)。

  3.函數指針和指針結構訪問的開銷

strUCt a {
    void (*tf)();
}

  測試程序修改為使用結構的函數指針,測試發現對時間基本沒有什么影響。其實使用結構并不會產生影響,因為結構的訪問是固定偏移量的。所以結構變量的訪問和普通變量的訪問對于機器碼來說是一樣的。

  測試結論:使用類模擬的辦法對性能不會產生太大的影響。

更多文章 更多內容請看C/C++進階技術文檔專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜男人在线观看 | 国产伊人色| 国产精品视频 | 毛片视频观看 | 国产精品视频免费在线观看 | 日韩精品a在线观看 | 欧美性受xxxxxx黑人xyx性爽 | 中文字幕在线观看免费 | 免费欧美一级视频 | h久久 | 国产美女一区二区在线观看 | 亚洲一级毛片 | 免费观看视频在线观看 | 亚洲射吧 | 精品国产一区二区在线观看 | 午夜激情视频网站 | 黄色网电影| 91短视频网址 | 噜噜噜躁狠狠躁狠狠精品视频 | 成人性生活视频在线播放 | 在线免费观看精品 | 久久久久久久久久久国产精品 | 在线看一级片 | 黄色的视频免费看 | 黄色大片在线观看 | 国产精品片一区二区三区 | 久久草在线视频国产 | 激情综合在线 | 免费毛片免费看 | av手机免费在线观看 | 欧美日在线观看 | 久久99精品久久久久久秒播放器 | 国产精品欧美日韩一区二区 | 片在线观看| 好吊色37pao在线观看 | 日本一区免费看 | 成人免费福利视频 | 久久草在线看 | 色啪综合| 一本色道久久综合亚洲精品图片 | 国内久久久久 |