6

我正在研究我們的持續集成系統,我對模擬我們的系統處理意外長的編譯時間感興趣。有什麼辦法可以使編譯花費很長時間來完成?或者也許強迫它進入某種需要大量時間編譯的循環?我正在尋找像Thread.Sleep()一樣簡單的事情,只是在編譯而不是執行上。是否有可能編寫會導致編譯時間過長的代碼?

如何使用預處理器指令?

任何想法?

+13

使用C++和模板元編程與瘋狂遞歸模板? – 2009-10-19 02:32:22

+4

將該評論轉換爲答案,因爲那時我可以正確投票。 – 2009-10-19 02:36:52

+0

嘗試模板代碼中的ackermann函數。 o(n!)中的因子也可能表現良好。 – BCS 2009-10-19 03:56:16

回答

7

顯然睡眠任務是要走的路。但是,如果您對使C#編譯器任意長的方法感興趣,僅供參考,可能會對源代碼中的問題進行編碼,這會迫使重載算法執行O(n^m)算法。選擇足夠大的n和m,你可以讓編譯器做你喜歡的工作。

這是我關於該主題的文章,如果你有興趣。

http://blogs.msdn.com/ericlippert/archive/2007/03/28/lambda-expressions-vs-anonymous-methods-part-five.aspx

+0

太棒了!感謝您的好消息。 – 2009-10-19 14:38:01

2

我有一個同事曾經是誰寫16000行switch語句。編譯需要花費很長時間,然後當他再擴展一點時,它實際上破壞了編譯器。不知何故,我不確定那是你的想法。

相關問題