0
我有一些代碼,我用秒錶進行測試,以記錄執行時間。我不想總是運行它,所以我認爲處理定時器的最有效方法是使用預處理器宏。對於下面的例子,如果定義了ENABLE_ENGR_PROFILING
,我在秒錶上調用start()函數,做一些工作,然後在stopwatch上調用accumulate(),從start()開始測量時間增量並將其添加到時間計數器。然後在節目結束時,我可以傾倒時間,看看時間在哪裏。這很好,但它增加了很多代碼。當我在使用算法時,我不想被計時器代碼分心。在下面的7行中,當我正在執行程序時,我真的只想看到1行,someTimeConsumingCode()
。有沒有辦法在Visual Studio 2010中隱藏這些宏?可能隱藏Visual Studio 2010中的#define /宏?
#if defined(ENABLE_ENGR_PROFILING)
stopwatch.start();
#endif
someTimeConsumingCode();
#if defined(ENABLE_ENGR_PROFILING)
stopwatch.accumulate();
#endif
你是什麼意思「在算法上工作「? –
通過算法,我的意思是除了定時器之外的所有東西......在處理算法/主程序代碼時,我想忽略定時器(看不到它們)。 –
您能移動到2012年還是2013年? Lambda使這種事比宏更好... –