問題タブ [zero-copy]
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.
linux - splice(2) は、ftrace raw ファイルから読み取るときに「無効な引数」を返します
trace-cmd がオフ ftrace の raw ファイルをゼロ コピーするために使用する splice syscall を試してみたかったのです。
以下は、splice が読み取りに失敗する ftrace raw ファイルの部分的なリストです。
/sys/kernel/debug/tracing/per_cpu/cpo0/trace_pipe_raw
/sys/kernel/debug/tracing/per_cpu/cpo0/snapshot_raw
/sys/kernel/debug/tracing/per_cpu/cpo1/trace_pipe_raw
/sys/kernel/debug/tracing/per_cpu/cpo1/snapshot_raw
そして、ここにいくつかの他のファイルがあります(スプライスは問題なく処理します):
/sys/kernel/debug/tracing/per_cpu/cpo0/trace_pipe
/sys/カーネル/デバッグ/トレース/per_cpu/cpo0/スナップショット
/sys/kernel/debug/tracing/per_cpu/cpo1/trace_pipe
/sys/カーネル/デバッグ/トレース/per_cpu/cpo1/スナップショット
機能するもの:
- read() システム コールを使用すると、生の ftrace ファイルから読み取ることができます。
- cat() システム コールを使用すると、生の ftrace ファイルが表示されます。
- ftrace の CLI フロントエンドである trace-cmd ツールを使用します。
これは私のコードです:
ノート:
/sys/kernel/debug/tracing へのすべてのアクセスは sudo で行われます
java - SocketChannel から SocketChannel へのゼロコピー
Java の NIO API を使用して、あるソケットから別のソケットへのゼロコピー データ転送を実装することは可能ですか? FileChannel::transferTo()
ファイルからソケットにこれを行うのはわかっていますが、 にはメソッドがありませtransferTo()
んSocketChannel
。
c++ - ゼロコピー フォーム gRPC c++ を実装する方法
場合によってはFTPサーバーとして機能するgRPCサーバー(c++)を書きたいです。詳細には、クライアントはその名前でファイルを要求しますが、サーバーはファイルの内容が存在する場合はそれを返します。sendfile
従来のソケット プログラミングでは、Linux システムを利用してゼロコピーを実装できます。これは、ファイルの内容がユーザー空間に転送されることなく、ディスクから直接ソケット バッファーに移動することを意味します。しかし、gRPC の世界では、ソケットの詳細は隠されています。つまり、ソケットの背後にあるファイル記述子にアクセスできない可能性がありますsendfile
。
したがって、最初にファイル バイトをメモリに読み込み、その後 gRPC 応答で返す必要があります。それは不必要なパフォーマンスの低下です。APIまたは回避策があるかどうか疑問に思っています。