Re: [問題] 關於C++ 繼承

看板C_and_CPP作者 (布雷克斯)時間15年前 (2010/07/22 15:44), 編輯推噓2(209)
留言11則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言: : ※ 引述《yshihyu (yshihyu)》之銘言: 剛剛在Athlon XP 2000+, RAM 1.5G的Arch Linux舊機器上做了實驗 //#include <iostream> class a0 { public: explicit a0(void) {value = 100;}; virtual ~a0(void) {}; int get_v(void) {return value;}; int value; }; class a1 : public a0 {}; ... ... class aN : public aN {}; int main() { //aN obj; //int v = obj.get_v(); //std::cout << v << std::endl; return 0; } 照上面的範本來跑: gcc v4.5.0 死在 8192 (7168花了468秒) gcc v4.5.0 with O2 死在 8192 (7168花了537秒) clang v1.1 通過 10240 (花了253秒) (如果實際使用class aN的話,gcc光編512層就花了597秒。實在太久了,所以沒測) 看有沒有人要用Intel compiler跟VC++測一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.9.139.138

07/23 00:48, , 1F
感覺會是一個比較漂亮的數字 ex: 2^31層之類的
07/23 00:48, 1F

07/23 01:01, , 2F
沒必要認真吧,這就只是試試看各家 compiler 的極限,與
07/23 01:01, 2F

07/23 01:02, , 3F
與語言本身無關. 而且各家 compiler 的實做也絕對夠用了
07/23 01:02, 3F

07/23 09:44, , 4F
果然是8192...
07/23 09:44, 4F

07/23 09:53, , 5F
我用 VC2005 測試的上限也是 8192
07/23 09:53, 5F

07/23 09:53, , 6F
似乎 VC 比較聰明 在沒有用到時 object file 裡啥都沒有
07/23 09:53, 6F

07/23 09:54, , 7F
(即使是 8192 層的 .obj 也只有 1.6K)
07/23 09:54, 7F

07/23 09:55, , 8F
而有用到的在 2560 層的 .obj 大小就已經有 49.4M 了...@_@
07/23 09:55, 8F

07/23 09:56, , 9F
編譯時間也是 512 層的兩三百倍(512層 4" vs 2560層 18'34")
07/23 09:56, 9F

07/23 09:57, , 10F
(測量是使用 Windows Server 2003 Resource Kit Tool 裡的
07/23 09:57, 10F

07/23 09:57, , 11F
timeit 公用程式測量 應該還滿準的就是)
07/23 09:57, 11F
文章代碼(AID): #1CI6T8_l (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
問題
2
11
文章代碼(AID): #1CI6T8_l (C_and_CPP)