問題タブ [libev]

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 投票する
1 に答える
247 参照

c - libev で、デフォルトのループがスタックにあるのはなぜですか?

はい、loop1 は loop2 と同じです。しかし、なぜそれらは両方ともヒープではなくスタック上にあるのでしょうか? で、多分 ev_default_loop はこんな感じで、

しかし、func が戻った後、そのスタックはクリーンアップされています。それで、それは本当に安全ですか?

0 投票する
2 に答える
1569 参照

libuv - libuv は POSIX システム上の libev の単なるラッパーですか?

私はlibevとlibuvの間で本当に混乱しています。

libuv は POSIX システム上の libev の単なるラッパーですか?

そうでない場合、どこが違うのですか?

0 投票する
0 に答える
323 参照

cpu - libev と 2 つの ev_timer 100%CPU を使用

まず、私の英語はとても下手です...これは私のコードです:

そしてこれはperfが言った:

次のような perf cpu-clock レコード:

コード行「ev_loop(m_loop, 0)」を次のように変更した場合:

CPU 使用率が低い..そして、ev_time を使用した ev_loop(m_loop,0) が 100% の CPU パフォーマンスを犠牲にするのはなぜですか?

どんな答えも役に立ちます、ありがとう!

0 投票する
2 に答える
3968 参照

c - ソケットファイル記述子で読み取り可能/書き込み可能とはどういう意味ですか? そして、なぜ通常のファイルはそれを気にしないのですか?

私は最近 libev を学び始めたばかりなので、 a に読み取り/書き込み可能な概念があり、io_watcherよく理解していません。私の知る限り、Linux システム プログラミングには次のパラメータがあります。

O_ASYNC

指定されたファイルが読み取り可能または書き込み可能になると、シグナル (デフォルトでは SIGIO) が生成されます。このフラグは、通常のファイルではなく、端末とソケットでのみ使用できます。

では、通常のファイルは読み取り/書き込みを気にしないため、ソケット プログラミングにおいて読み取り/書き込み可能とは実際には何を意味するのでしょうか? また、カーネルは、ソケット ファイル記述子が読み取り可能かどうかを調べるためにどのような手段を講じましたか?

すべてがファイルであるという哲学を考慮すると、異なる記述子番号を持つすべてのソケット記述子は、実際には同じファイルを指していますか? もしそうなら、同期が原因で読み取り/書き込みの問題が発生したと考えてよいですか?

OK、ばかげた質問をしたようです。私が本当に言いたいのは、ソケットと通常のファイルの両方がファイル記述子を介して読み書きできるということです。なぜソケット記述子には読み書き可能な概念があるのに、通常のファイルにはありません。EJP は、これはバッファーと各記述子が独自のバッファーのペアを取得したためであると私に言ったので、ここに私の結論があります: 読み取り/書き込み可能な概念はバッファー用であり、バッファーが空の場合は読み取り不能であり、バッファーがいっぱいの場合は書き込み不可です。読み取り可能および書き込み可能は同期とは関係がなく、通常のファイルにはバッファーがないため、常に読み取り可能および書き込み可能です。

さらに質問があります。受信バッファと言うと、このバッファは と同じではありませんint recv(SOCKET socket, char FAR* buf, int len, int flags);よね?

0 投票する
1 に答える
1035 参照

python - Python cassandra-driver: libev を使用するために必要な C 拡張機能が見つかりませんでした

libev4、libev-dev、gcc、python-dev. ただし、インポート中に次のエラーが発生しますLibevConnection

「libev を使用するために必要な C 拡張機能が見つかりませんでした。これはおそらく、ドライバーのインストール時に必要なビルドの依存関係がなかったことを意味します」

再インストールを試み、最新バージョンのドライバーをインストールしても成功しませんでした。Ubuntu 12.04 を使用しています。

0 投票する
2 に答える
86 参照

perl - perl AnyEvent を使用してかかった個々の時間を測定する

多くの http URL をフェッチする必要があり、AnyEvent::HTTP を使用してこれを行います すべての URL について、所要時間を測定する必要があります。これを行うにはどうすればよいですか?

私のコード(取り除かれたもの)はここにあります