问题标签 [libevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2102 浏览

sockets - 使用基于 libevent 的 evhttp 的服务器打开的文件过多

我创建了简单的基于 evhttp 的服务器。

当我开始使用它进行基准测试时

经过几次尝试后,我收到了这些警告:

有点像我没有关闭套接字......并发级别 50 的目标是一次只使用 50 个套接字,对吧?

我应该在处理函数中关闭套接字吗?

0 投票
6 回答
24511 浏览

python - 如何在 Windows 上安装 gevent?

我正在尝试在 Windows 上安装 gevent。为了做到这一点,我下载并编译了 libevent,然后我运行pip install gevent并得到一个错误:Please provide path to libevent source with --libevent DIR. 如何将libevent选项传递给setup.pyusing pip

在此先感谢,伊万。

UPD:运行pip install gevent --install-option="--libevent path_to_libevent"给出相同的结果。

0 投票
1 回答
1688 浏览

java - java.nio vs libevent 在处理大量http请求时选择什么?

我需要构建 HTTP 服务器来获取其中的许多请求。1-5 秒内只有 10,000-30,000 个。这是一个短/小的要求。
我需要选择或将其基于 libevent/libev(或者可能是 ACE ??),或者使用 java.nio 在 java 中进行。
我没有找到任何可以与 libevent 与 java.nio 或 ACE 与 java.nio 进行对比的基准测试。
你们专家怎么看?
从我的角度来看,java 更容易维护(java 比 c 更容易),但我怀疑我会为性能付出代价。
我需要建议。
谢谢

0 投票
1 回答
1108 浏览

php - 不要等待服务器使用 ZeroMQ 响应

今天我看看 Rasmus 在这里描述的http://toys.lerdorf.com/archives/57-ZeroMQ-+-libevent-in-PHP.html在 PHP 中使用 ZeroMQ 和 libevent。

我让它工作,但我注意到客户端等待服务器返回/发送响应。是否可以让客户端脚本不等待服务器响应?我只希望我发送到服务器的消息是“一劳永逸”。

我用谷歌搜索了一下,但没有找到任何有用的东西,ZeroMQ PHP 客户端库似乎没有太多关于异步通信的选项,或者我错过了什么?

0 投票
1 回答
4488 浏览

c - 使用 libevent 的异步 Redis 池

我想从 Redis + Hiredis + libevent 中得到尽可能多的东西。

我正在使用以下代码(没有任何简短的检查)

要编译,gcc -o main -levent -lhiredis main.c请在系统中使用假设 libevent、redis 和hiredis。

我很好奇什么时候需要做redisAsyncConnect什么?main()一次或(如示例所示)在每个回调中。我能做些什么来提高性能吗?

我得到大约 6000-7000 req/s。用于ab基准测试,在尝试大数字(例如 10k 请求)时,事情变得复杂 - 它无法完成基准测试并冻结。做同样的事情,但以阻塞方式,结果是 5000-6000 req/s。

我已经扩展了打开的最大文件limit -n 10000。我正在使用 Mac OS X Lion。

0 投票
1 回答
1086 浏览

python - 如何在cygwin下的python中构建gevent?

我想在各种环境中始终如一地使用 python。其中一种环境是cygwin。我想使用的组件之一是 gevent (http://www.gevent.org/intro.html)。在 cygwin 下,我运行了 python 2.7(在本地构建,此处描述了一行更改,这是构建所需的:http ://www.gossamer-threads.com/lists/python/python/976956 )。

gevent 需要 libevent (http://libevent.org/)。

libevent 似乎在 cygwin 下构建得很好(./configure && make && make install)。

但是,在构建 gevent (pip install gevent) 时,它会失败,因为 libevent 构建了静态库(例如 /usr/local/lib/libevent.a)并且 gevent 构建需要共享库。因此:

同时,如果我尝试让 gevent 静态链接(CFLAGS='-static' pip install gevent),-levent 仍然失败,以及许多关于取消引用类型双关指针将如何破坏严格别名规则和一些额外的 ld 失败的警告:

gevent/core.c:21835:警告:取消引用类型双关指针将破坏严格别名规则

... 所以...

我想我需要告诉 libevent 构建 .dll 而不是 .a,但 libevent 的 Makefile 实际上并没有 .a 目标,而且我不清楚要如何更改所使用的抽象来实现这一点。

所以,退一步:如何在cygwin下的python 2.7下安装gevent?

0 投票
16 回答
222396 浏览

macos - 配置:错误:C 编译器无法创建可执行文件

我在stackoverflow上检查了许多类似的问题,但还没有找到答案。

我正在尝试在 Lion OSX 上安装 memcached,如此处所示

这是我得到的:

我已经按照几个地方的建议重新安装了 Xcode,但没有骰子。

这是我的 config.log:

0 投票
1 回答
2656 浏览

c - libevent 和信号处理(特别是 SIGCHLD)

这在某种程度上是我在此处找到的相关问题的后续行动 。

在链接的问题中,提到了signalfd()将 fd 与libevent一起使用和使用。在那个问题中,OP 没有列出他使用signalfd()libevent 信号处理设施的原因。

在这两种方法中,您都将在信号处理程序之外处理回调。

该文档似乎警告在信号事件回调中调度计时器。这似乎不对(因为我们将在信号处理程序上下文之外)。除了上述警告之外,我看不出使用signalfd().

有关两种方法之间差异或警告的任何输入

谢谢!

0 投票
1 回答
733 浏览

python - 使用 pyev 的 epool 或从 Python 中的 stdlib 中选择?

select有人在 Python 中通过Python stdlib测量 pyev 相对于标准绑定的速度和有用性吗?

使用 pyev over 有什么好处select

pyev 是由 C 扩展构建的,因此它不是可移植的解决方案。我尝试使用 PyPy 构建它,但开箱即用并没有成功。
所以我只是想知道是否值得使用它。

我知道gevent在它的 1.0 版本中使用 libev(在他们使用 libevent 之前)。他们真的需要吗?我不关心非事件循环功能(比如来自 libevent 的 dns)。

0 投票
0 回答
1395 浏览

sockets - libevent 发送 POST 而不是 GET

我编写了一个简单的程序,使用 libevent 和这个示例代码同时连接到 Web 服务器

我在一个带有 centos 的 vmware fusion 上运行它。问题是当我运行它时,我只得到服务器拒绝的连接。在对wireshark的进一步调查中,我意识到这段代码是从后面发出HTTP POST请求而不是GET请求,因此连接被拒绝。现在相同的代码在我的 mac 或 ubuntu 机器上运行良好。这似乎是虚拟操作系统的配置问题。谁能指出它可能是什么?这是我的虚拟操作系统发出的: