2013-01-11 26 views
3

我正在使用boost::io_service通過post()方法與boost::bind對象進行異步事件處理。有誰知道這是否會導致新的分配?我知道下面有一個事件隊列,但我確定它是如何工作的。顯然我很擔心高性能。boost :: io_service post方法是否會導致新分配?

+0

你有什麼你的應用程序? –

+0

是的。我試圖避免關鍵路徑上的新分配。 –

回答

4

是的,它會導致分配。如果分配是性能問題,您可以使用custom allocator for the handler

+0

我自己測試了一下覆蓋全球新。看來3分配實際上是在boost :: io_service發佈期間發生的。即使使用處理程序的自定義分配器,它仍然執行2個分配。 –

+1

分配可能來自[boost :: bind](http://stackoverflow.com/questions/5894956/does-boostbind-cause-overhead)。如果你想盡量減少asio的開銷,也許值得看看[Marat Abrarov](http://sourceforge.net/projects/asio-samples)的例子。他們展示了一些[模式](http://article.gmane.org/gmane.comp.lib.boost.asio.user/5512)的高性能asio使用情況,這些都不在官方的asio示例中。 – jcm

相關問題