看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
softwind:感覺會是一個比較漂亮的數字 ex: 2^31層之類的 07/23 00:48
avhacker:沒必要認真吧,這就只是試試看各家 compiler 的極限,與 07/23 01:01
avhacker:與語言本身無關. 而且各家 compiler 的實做也絕對夠用了 07/23 01:02
Keiichi:果然是8192... 07/23 09:44
LPH66:我用 VC2005 測試的上限也是 8192 07/23 09:53
LPH66:似乎 VC 比較聰明 在沒有用到時 object file 裡啥都沒有 07/23 09:53
LPH66:(即使是 8192 層的 .obj 也只有 1.6K) 07/23 09:54
LPH66:而有用到的在 2560 層的 .obj 大小就已經有 49.4M 了...@_@ 07/23 09:55
LPH66:編譯時間也是 512 層的兩三百倍(512層 4" vs 2560層 18'34") 07/23 09:56
LPH66:(測量是使用 Windows Server 2003 Resource Kit Tool 裡的 07/23 09:57
LPH66: timeit 公用程式測量 應該還滿準的就是) 07/23 09:57