青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

qiezi的學習園地

AS/C/C++/D/Java/JS/Python/Ruby

  C++博客 :: 首頁 :: 新隨筆 ::  ::  :: 管理 ::
實際上不是全面測試性能。應該這么說:使用一個你熟悉的語言,用它寫出一個高效的版本(做下面那件事)。

不小心讀到一個帖子:http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html

看到C++竟然被比下去了,自然不是很舒服,畢竟C++對于C并沒有太大的性能上的降低,而python是C寫的(指Cpython實現),自然不會高過C。(廢話,C基本上接近匯編效率了)

可惜C++又很難找出這么高效的實現,STL效率還是低了些(為什么?一直以為它很高效,用得比較放心)。最近一直比較關注D語言,于是用D語言來測試一下。代碼如下:

?1?import?std.stdio;
?2?import?std.string;
?3?import?std.perf;
?4?
?5?int?main(char[][]?argv)
?6?{
?7???if?(argv.length?<?3)?{
?8?????writefln("Wrong?arguments");
?9?????return?1;
10???}
11?
12???const?int?READ_SIZE?=?1024;
13?
14???FILE*?fin?=?fopen(argv[1],?"r");
15???FILE*?fout?=?fopen(argv[2],?"w");
16???char?buffer[READ_SIZE];
17???int[char[]]?emails;
18?
19???PerformanceCounter?counter?=?new?PerformanceCounter();
20???counter.start();
21???while?(!feof(fin)){
22?????fgets(cast(char*)buffer,?READ_SIZE,?fin);
23?????char[]?email?=?toString(cast(char*)buffer);
24?????if?(!(email?in?emails)){
25???????emails[toString(buffer)]?=?0;
26???????fputs(cast(char*)email,?fout);
27?????}
28???}
29?
30???fclose(fout);
31???fclose(fin);
32???counter.stop();
33?
34???writefln(counter.milliseconds());
35???return?0;
36?}
37?

沒加fopen失敗處理。

測試結果在我的機器上耗時只有python版本的1/3,我看到其它網友的C++實現最好成績也不過1/2,由于是D是C語言所寫,測試使用的又是C庫,自然可以認為C語言還是比較高效的。

上面的D語言代碼里調用了toString,把char*轉為char[],它的源代碼如下:
char[]?toString(char?*s)
{
????
return?s???s[0?..?strlen(s)]?:?cast(char[])null;
}

如果s[0 .. strlen(s)]產生了復制的話,應該是會影響性能的。char[]對象是受GC管理的,應該會復制一份。這種情況下還能有如此高的效率,的確很不錯。

不過python的性能讓我感覺很吃驚,以前只測試過字符串連接,感覺比較高效。

寫了一個完成一樣功能的ruby程序,耗時接近python版本的2倍,當然由于對它不是很熟,可能寫得不夠高效。
?1?emails?=?Hash.new
?2?
?3?start?=?Time.now
?4?fout?=?open('email-2-new1.txt',?'w')
?5?open('email-2.txt').each?do?|line|
?6???if?!emails.has_key??line
?7?????emails[line]?=?0
?8?????fout?<<?line
?9???end
10?end
11?puts?Time.now?-?start
12?

正如某網友所說,這個程序的瓶頸在于IO,拿來作性能上的比較或許是不合適的。從語言效率上來講,自然是C++和D相當,可能會比D高,python應該會低很多。但在很多情況下,衡量效率不光是語言本身,還有庫,沒有庫的語言是沒什么吸引力的。python是一種很“慢”的語言,相對C/C++來說,不過它是一門實用性的語言,所以它為一些特定用法做了優化,取得了不錯的成績。C++是一門通用語言,或許太注重語言的性能了,忽略了庫,導致庫把性能給拉下來了。這種情況下,有人評測java和C++的性能,結果是java要高,自然是不那么讓人驚奇的了。可是如果標準庫都這么慢,那還能指望什么呢?

當然也并沒有證明STL就特別慢,也可能是使用不正確。


只是剛好看到這個比較,忍不住參與一下,切勿當真。
posted on 2006-03-31 11:06 qiezi 閱讀(841) 評論(0)  編輯 收藏 引用 所屬分類: 雜談D
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人黑人xx视频免费观看| 亚洲欧美一区二区精品久久久| 欧美精品成人| 亚洲淫性视频| 午夜亚洲激情| 国产日韩欧美一区二区三区在线观看| 欧美国产免费| 亚洲福利在线观看| 亚洲成人自拍视频| 91久久精品国产91久久性色tv | 一区二区三区日韩欧美| 亚洲精品字幕| 亚洲午夜视频在线| 久久大逼视频| 欧美激情亚洲另类| 国产欧亚日韩视频| 亚洲电影自拍| 亚洲欧美日韩一区二区在线| 久久免费99精品久久久久久| 亚洲激情第一页| 亚洲午夜国产成人av电影男同| 新67194成人永久网站| 亚洲激情在线观看| 亚洲欧洲日产国产网站| 日韩视频中文字幕| 亚洲视频免费观看| 久久精品人人| 亚洲激情在线观看| 亚洲一区二区三区四区五区午夜| 久久精品国产亚洲精品| 欧美精品久久99久久在免费线| 欧美高清不卡在线| 精品1区2区3区4区| 亚洲欧美激情视频| 欧美风情在线| 久久国产精品72免费观看| 欧美日韩视频在线观看一区二区三区| 国产日韩一区二区三区在线播放 | 中日韩美女免费视频网址在线观看| 欧美一区二区精品久久911| 欧美伦理影院| 亚洲第一精品夜夜躁人人躁| 欧美亚洲免费在线| 日韩午夜精品| 欧美精品一区二区三| 永久555www成人免费| 欧美一区影院| 亚洲欧美成人在线| 欧美色图首页| 一区二区三区久久网| 亚洲欧洲精品一区二区三区波多野1战4 | 久久精品在线免费观看| 亚洲乱码国产乱码精品精| 久久亚洲精选| 樱花yy私人影院亚洲| 久久久久久97三级| 久久国产一区| 一区二区亚洲精品| 鲁大师影院一区二区三区| 性色av一区二区三区在线观看| 国产精品久久久久久模特| 亚洲在线观看| 亚洲欧美日韩国产另类专区| 欧美了一区在线观看| aa级大片欧美三级| 亚洲最黄网站| 国产精品久久久一区麻豆最新章节| 中文在线资源观看网站视频免费不卡 | 欧美激情按摩| 亚洲国产精品99久久久久久久久| 你懂的国产精品| 免费在线观看精品| 日韩午夜在线播放| 一区二区三区四区五区精品| 欧美视频不卡| 久久av一区| 久久全球大尺度高清视频| 亚洲国产高清一区| 亚洲久久在线| 国产日韩欧美高清| 蜜臀久久久99精品久久久久久| 老鸭窝91久久精品色噜噜导演| 亚洲人在线视频| 宅男在线国产精品| 狠狠爱www人成狠狠爱综合网| 欧美激情一区二区在线| 国产精品chinese| 久久亚洲春色中文字幕久久久| 久久在精品线影院精品国产| 一区二区三区日韩| 午夜在线精品| 日韩一二三区视频| 午夜老司机精品| 亚洲美女性视频| 午夜精品一区二区三区电影天堂| 亚洲国产片色| 亚洲欧美高清| 亚洲麻豆av| 久久福利影视| 亚洲在线视频网站| 免费av成人在线| 久久久91精品国产一区二区三区| 欧美激情国产精品| 欧美一区二区三区视频在线| 免费人成网站在线观看欧美高清| 亚洲欧美日本伦理| 欧美sm重口味系列视频在线观看| 午夜精品久久久久久久| 欧美大片在线看| 久久看片网站| 国产精品视频导航| 一本到12不卡视频在线dvd | 亚洲欧美在线磁力| 蜜乳av另类精品一区二区| 欧美伊人久久久久久久久影院| 欧美二区在线播放| 噜噜噜噜噜久久久久久91| 国产精品爽爽ⅴa在线观看| 亚洲日本中文字幕| 在线免费精品视频| 久久久国产精品一区二区中文| 亚洲欧美激情在线视频| 欧美日韩精品综合| 亚洲精品久久嫩草网站秘色| 亚洲国产91| 久久综合综合久久综合| 久久只有精品| 久久久精品性| 亚洲一级片在线看| 男女精品网站| 蜜臀久久99精品久久久画质超高清| 国产精品欧美风情| 99综合在线| 一区二区欧美亚洲| 欧美日韩国产三级| 99成人精品| 中文在线一区| 欧美四级电影网站| 一本久久知道综合久久| 亚洲天堂男人| 国产精品麻豆va在线播放| 亚洲一区二区在线播放| 亚洲欧美综合一区| 国产日韩欧美二区| 欧美在线观看视频在线| 老司机免费视频一区二区三区 | 日韩视频―中文字幕| 欧美精品在线免费播放| 亚洲精品永久免费| 亚洲一区久久| 国产欧美精品| 久久成人精品视频| 亚洲第一成人在线| 99精品热视频| 国产精品美女在线| 欧美在线免费看| 欧美激情小视频| 亚洲无限av看| 国精产品99永久一区一区| 久久在线免费观看| 99精品欧美一区二区蜜桃免费| 亚洲欧美日韩成人| 狠狠色综合日日| 欧美区视频在线观看| 亚洲专区免费| 亚洲国产精品福利| 亚洲欧美中文日韩在线| 亚洲第一天堂av| 欧美午夜一区二区三区免费大片| 一本大道久久a久久精二百| 欧美影院在线| 亚洲专区国产精品| 国产精品永久入口久久久| 欧美在线啊v| 欧美激情欧美狂野欧美精品| 一本色道久久88精品综合| 国产亚洲一二三区| 欧美日韩三级视频| 久久久久99| 亚洲视频一区二区| 免费成人高清在线视频| 国产精品99久久久久久有的能看 | 欧美/亚洲一区| 亚洲一区制服诱惑| 亚洲日本电影在线| 久久久久国产一区二区三区| 一区二区三区视频免费在线观看| 伊甸园精品99久久久久久| 国产精品v日韩精品| 欧美国产视频在线| 久久久欧美一区二区| 在线亚洲伦理| 日韩午夜在线视频| 亚洲第一在线综合网站| 欧美第十八页| 欧美亚洲一区二区三区| 一本色道久久综合亚洲精品高清| 欧美大胆成人| 久久精品综合一区| 欧美极品aⅴ影院|