我使用libevent创建的大多数应用程序都涉及一个读回调,每当为请求打开一个新连接时,我都会使用::event_new()
分配一个新事件,然后通过{{1}将该事件添加到事件库中}
但问题是每次打开一个新请求时我都会分配内存并将其添加到事件循环中,而实际上我应该共享文件描述符的回调和事件。授予内存分配不是这种应用程序的瓶颈,libevent是否提供了一些与多个文件描述符共享事件的方法?
答案 0 :(得分:1)
您不应在文件描述符之间共享事件。这会在你的应用程序中造成混乱。 event_new()
创建一个附加到文件描述符的事件。
您可以尝试使用event_assign()
重新分配已用完的事件,但libevent文档明确指出不建议这样做。另外,在某种池中管理花费的事件可能并不像看起来那么简单,并且可能没有任何显着的性能提升。