我正在考慮在我的計時器管理器的實現中使用boost::function
。在計劃計時器時,將傳遞一個boost::function
,並在計時器到期時執行回調。時間將以高頻率(約1000次動作/秒)預定/取消。boost ::函數內存使用情況
但我擔心的是堆內存boost::function
可能會使用的數量。
我知道例如boost::asio
使用boost::function
很多,而圖書館的性能要求可能非常高。
您認爲如何?
我正在考慮在我的計時器管理器的實現中使用boost::function
。在計劃計時器時,將傳遞一個boost::function
,並在計時器到期時執行回調。時間將以高頻率(約1000次動作/秒)預定/取消。boost ::函數內存使用情況
但我擔心的是堆內存boost::function
可能會使用的數量。
我知道例如boost::asio
使用boost::function
很多,而圖書館的性能要求可能非常高。
您認爲如何?
在我看來,boost::function
的開銷不太可能成爲計時器管理代碼中的門控因素。
獲得計時器隊列,鎖定和信號等待線程正確和高效是一個更好的使用你的大腦週期。相反,這是贊成boost::function
或類似的另一個參數,以避免與'原始'回調頭痛。
boost :: function是一個相當小的對象。如果有的話,可能是普通函數指針大小的2-3倍。
看看this article,可能會給你一些觀點。
我不關心分配的數據的大小,而是關於新的/刪除它本身 – dimba 2010-11-29 19:39:30