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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C語(yǔ)言中的面向?qū)ο?3)-類模擬的性能分析

2019-11-17 05:03:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
 

  類模擬中使用了大量的函數(shù)指針,結(jié)構(gòu)體等等,有必須對(duì)此進(jìn)行性能分析,以便觀察這樣的結(jié)構(gòu)對(duì)程序的整體性能有什么程度的影響。

  1.函數(shù)調(diào)用的開(kāi)銷

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

  在測(cè)試程序里面,我們使用的是一個(gè)測(cè)試函數(shù),函數(shù)體內(nèi)部可以通過(guò)改變YY的值來(lái)改變函數(shù)的耗時(shí)。測(cè)試對(duì)比是 循環(huán)調(diào)用XX次函數(shù),和循環(huán)XX次函數(shù)內(nèi)部的YY循環(huán)。

  結(jié)果發(fā)現(xiàn),在YY足夠小,X足夠大的情況下,函數(shù)調(diào)用耗時(shí)成為了主要原因。所以當(dāng)一個(gè)“簡(jiǎn)單”功能需要“反復(fù)”調(diào)用的時(shí)候,將它編寫(xiě)為函數(shù)將會(huì)對(duì)性能有影響。這個(gè)時(shí)候可以使用宏,或者inline要害字。

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

  2.普通函數(shù)調(diào)用和函數(shù)指針調(diào)用的開(kāi)銷

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

  測(cè)試程序修改為一個(gè)使用函數(shù)調(diào)用,一個(gè)使用函數(shù)指針調(diào)用。測(cè)試發(fā)現(xiàn)對(duì)時(shí)間基本沒(méi)有什么影響。(在第一次編寫(xiě)的時(shí)候,發(fā)現(xiàn)在函數(shù)調(diào)用出現(xiàn)耗時(shí)的情況下(XX=1億),函數(shù)指針的調(diào)用要慢(release版本),調(diào)用耗時(shí)350:500。后來(lái)才發(fā)現(xiàn)這個(gè)影響是由于將變量申請(qǐng)為全局的原因,全局變量的訪問(wèn)要比局部變量慢很多)。

  3.函數(shù)指針和指針結(jié)構(gòu)訪問(wèn)的開(kāi)銷

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

  測(cè)試程序修改為使用結(jié)構(gòu)的函數(shù)指針,測(cè)試發(fā)現(xiàn)對(duì)時(shí)間基本沒(méi)有什么影響。其實(shí)使用結(jié)構(gòu)并不會(huì)產(chǎn)生影響,因?yàn)榻Y(jié)構(gòu)的訪問(wèn)是固定偏移量的。所以結(jié)構(gòu)變量的訪問(wèn)和普通變量的訪問(wèn)對(duì)于機(jī)器碼來(lái)說(shuō)是一樣的。

  測(cè)試結(jié)論:使用類模擬的辦法對(duì)性能不會(huì)產(chǎn)生太大的影響。

更多文章 更多內(nèi)容請(qǐng)看C/C++進(jìn)階技術(shù)文檔專題,或

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 荔波县| 新营市| 墨江| 灯塔市| 旬邑县| 肥东县| 水城县| 岳普湖县| 镇赉县| 临江市| 邵阳县| 林州市| 托克托县| 德钦县| 罗山县| 韩城市| 晋城| 田东县| 房山区| 山东省| 河北省| 榆社县| 新竹县| 鄂州市| 合水县| 高邮市| 沙洋县| 章丘市| 盘锦市| 道真| 新闻| 阿尔山市| 灌南县| 嵊州市| 葫芦岛市| 黔南| 鄂伦春自治旗| 襄汾县| 团风县| 蕲春县| 高州市|