raii可以實現,通過new delete控制呼叫前後,很懶,只想加幾個字元,不想換行
snippet mlt
#include
#define mllog printf
#ifndef mllog
#error "please define mllog"
#endif
struct mlt
template
mlt& operator = (t)
~mlt()
private:
struct timeval t_start;
struct timeval t_end;
const char* label;
};mlt mlt_helper(struct timeval start_time, const char* label_tag)
// cannot use for void return functions
// and seems tedious
#define mlt(f) struct timeval t_start; \
gettimeofday(&t_start, 0); \
mlt_helper(t_start, #f) = \
// cannot use for void return functions
#define mt struct timeval t_start; \
gettimeofday(&t_start, 0); \
mlt_helper(t_start, "") = \
測試:int f(void)
}int main(int argc, char* argv)
有兩個問題,void不能作為operator=的引數,所以benchmark的函式必須有返回值,mlt不能直接取f 的名稱,導致要寫個(),比較煩。懶。
優雅列印介面呼叫時長
優雅的api設計不僅僅是 層面的書寫規範.幾乎不可能api開發完畢就能正常投入使用,更多的是對細節的打磨.例如介面的每次執行時間,入參都會在api測試中反覆的推敲 如何設計乙個方案使開發者能一目了然的視覺化介面的處理時間以及入參是否正確呢?首先想到的是spring的aop切面,現在我們編寫api介面...
MFC OnSize事件呼叫時間
在ocx控制項被載入時,第一次呼叫onsize事件實在控制項中的各個部件未載入前,此時如果操作控制項中的控制項會出現控制針異常,需要提前判斷。ctestdlg m dlg int ctestctrl oncreate lpcreatestruct lpcreatestruct bool ctestd...
常用時間函式
比較常用的時間函式有time localtime asctime 和gmtime 函式time 的原型為 time t time time t time 函式time 返回系統的當前日曆時間,如果系統丟失時間設定,則函式返回 1。對函式time的呼叫,既可以使用空指標,也可以使用指向time t型別...