問題タブ [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.
sockets - libevent の evhttp ベースのサーバーで開いているファイルが多すぎる
シンプルな evhttp ベースのサーバーを作成しました。
を使用してベンチマークを開始したとき
何度か試行した後、次の警告が表示されます。
ソケットを閉じていないような気がします...同時実行レベル50は、一度に使用されるソケットが50個だけであることを目指していますよね?
ハンドラー関数でソケットを閉じることになっていますか?
python - Windowsにgeventをインストールするにはどうすればいいですか?
Windowsにgeventをインストールしようとしています。これを行うために、libeventをダウンロードしてコンパイルした後、実行するpip install gevent
とエラーが発生しますPlease provide path to libevent source with --libevent DIR
。libevent
オプションをsetup.py
使用に渡すにはどうすればよいpip
ですか?
よろしくお願いします、Ivan。
UPD:実行pip install gevent --install-option="--libevent path_to_libevent"
すると同じ結果が得られます。
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 のような 2 つを比較するベンチマークは見つかりませんでした。
専門家はどう思いますか?
私の観点からは、Java の方が保守が簡単です (Java は C よりも簡単です) が、パフォーマンスにお金がかかると思います。
アドバイスが必要です。
ありがとう
php - ZeroMQ を使用してサーバーが応答するのを待たない
今日、Rasmus がここで説明したことを見てきましたhttp://toys.lerdorf.com/archives/57-ZeroMQ-+-libevent-in-PHP.html PHP で libevent と一緒に ZeroMQ を使用しています。
動作するようになりましたが、クライアントがサーバーが応答を返す/送信するのを待っていることに気付きました。クライアントスクリプトがサーバーの応答を待たないようにすることはできますか? サーバーに送信したメッセージを「発射して忘れる」にしたいだけです。
少しググってみましたが、役に立つものは何も思いつきませんでした。ZeroMQ PHP クライアント ライブラリには、非同期通信に関するオプションが多すぎるように見えませんか、それとも何か見逃していましたか?
c - libevent を使用した非同期 Redis プーリング
Redis + Hiredis + libevent から可能な限り取得したい。
私は次のコードを使用しています(短くするためのチェックなし)
コンパイルするにはgcc -o main -levent -lhiredis main.c
、システムで libevent、redis、hiredis を想定して使用します。
いつする必要があるのか 知りたいredisAsyncConnect
ですか?1main()
回または (例が示すように) コールバックごとに。パフォーマンスを向上させるためにできることはありますか?
私は約6000-7000リクエスト/秒を取得しています。これをベンチマークに使用ab
すると、大きな数 (例: 10k リクエスト) を試すと複雑になり、ベンチマークを完了できず、フリーズします。同じことを行っていますが、結果は 5000-6000 req/s です。
で最大ファイルオープンを拡張しましたlimit -n 10000
。Mac OS X Lion を使用しています。
python - cygwinの下でPythonでgeventをビルドするにはどうすればよいですか?
さまざまな環境でPythonを一貫して使用したいと思います。それらの環境の1つはcygwinです。使用したいコンポーネントの1つはgevent(http://www.gevent.org/intro.html)です。cygwinの下で、python 2.7を実行しています(ローカルでビルドされ、ビルドに必要な1行の変更がここで説明されています: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に.aではなく.dllをビルドするように指示する必要があると思いますが、libeventのMakefileには実際には.aターゲットがなく、これを実現するために使用されている抽象化をどのように変更する必要があるかはわかりません。
それで、一歩後退します:cygwinの下でpython 2.7の下でgeventをインストールするにはどうすればよいですか?
macos - configure:エラー:Cコンパイラは実行可能ファイルを作成できません
stackoverflowで同様の質問をいくつか確認しましたが、まだ答えが見つかりません。
ここに示すように、LionOSXにmemcachedをインストールしようとしています。
これが私が得ているものです:
いくつかの場所で推奨されているようにXcodeを再インストールしましたが、サイコロはありません。
これが私のconfig.logです:
c - libeventとシグナル処理(具体的にはSIGCHLD)
これは、私がここで見つけた関連する質問のフォローアップ です。
リンクされた質問には、libeventsignalfd()
でそのfdを使用および使用することについての言及があります。その質問では、OPは、libevent信号処理機能とは対照的に彼が使用している理由をリストしていません。signalfd()
どちらの方法でも、シグナルハンドラーの外部でコールバックを処理します。
このドキュメントは、シグナルイベントコールバックでのタイマーのスケジューリングについて警告しているようです。これは正しくないようです(シグナルハンドラコンテキストの外にいるため)。上記の警告は別として、これをで行うことの利点はわかりませんsignalfd()
。
2つの方法の違いまたは警告に関する入力
ありがとう!
python - pyevでepoolするか、Pythonのstdlibから選択しますか?
select
誰かがPythonで、 Python stdlibからの標準的なバインディングに対するpyevの速度と有用性を測定しましたか?
pyevを使用する利点は何select
ですか?
pyevはC拡張機能によって構築されているため、移植性のあるソリューションではありません。PyPyでビルドしようとしましたが、箱から出してすぐに成功しませんでした。
だから私はそれを使う価値があるかどうか疑問に思っています。
geventが1.0バージョンで(そしてlibeventを使用する前に)libevを使用していることを私は知っています。彼らは本当にそれを必要としていますか?イベントループ以外の機能(libeventのDNSなど)は気にしません。
sockets - GET の代わりに POST を送信する libevent
このサンプル コードでは、libevent を使用して Web サーバーに同時接続する簡単なプログラムを作成しました。
これを、centos を搭載した vmware フュージョンで実行しています。問題は、それを実行すると、サーバーからのみ接続が拒否されることです。Wireshark でさらに調査したところ、このコードが背後から GET ではなく HTTP POST リクエストを作成しているため、接続が拒否されたことがわかりました。現在、同じコードが私の Mac または ubuntu マシンでうまく機能します。仮想OSの構成の問題のようです。誰かがそれが何であるかを指摘できますか? これは私の仮想OSが送信しているものです: