Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

epoll 方式是否可以替换成 libevent ? #130

Closed
bao3 opened this issue Jan 17, 2018 · 3 comments
Closed

epoll 方式是否可以替换成 libevent ? #130

bao3 opened this issue Jan 17, 2018 · 3 comments

Comments

@bao3
Copy link

bao3 commented Jan 17, 2018

我使用的是 Mac 系统,不想用镜像的方式,开销实在太大了。你工具不能在 mac 编译通过是因为 epoll 是 linux 独有的。
其实你分析一下,多数功能可以透过 http://libevent.org libevent 进行,这样的好处就是 libevent 自己支援 windows select, linux poll , macOS /BSD kqueue , 以及标准的 posix 。所以几乎实现全平台的应用。
希望你能考虑一下。

@wangyu-
Copy link
Owner

wangyu- commented Jan 17, 2018

Contribution Guide 里去年10月就有这个内容了,https://github.com/wangyu-/udp2raw-tunnel/issues/17 ,只是目前没人愿意做。

当初使用epoll timerfd而没有使用libevent/libev/libuv的原因,主要是: 1. 避免引入编译依赖,降低交叉编译(到linux嵌入式设备)的难度。 2. 用libevent/libev/libuv这种二次包装的api更容易踩到坑

我使用的是 Mac 系统,不想用镜像的方式,开销实在太大了

开销是指什么呢,内存/CPU?有没有具体数据呢,如果有具体的数据能说明这个开销确实大得不可接受,也许能促进一下libevent/libev/libuv的移植。

@iceonsun
Copy link

iceonsun commented Apr 3, 2018

@bao3 udp2raw不能在mac上编译通过的主要原因不是epoll(可以切换到跨平台但性能稍低的poll),而是linux和mac(BSD)的数据链路层访问API不一样。

我来安利一发Mac用户也可用的 rsock 。不需要装虚拟机。

@bao3
Copy link
Author

bao3 commented Apr 4, 2018

@iceonsun 谢谢,目前还没有时间测试你的这个 rsock,节后我抽空试一下。

@bao3 bao3 closed this as completed Apr 4, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants