zero-copy

    7

    3答えて

    splice()に関するもう1つの質問です。私はファイルをコピーするためにそれを使用することを望んでおり、spliceのWikipediaページの例のようなパイプで結合された2つのスプライス呼び出しを使用しようとしています。私はこれを実行すると、入力ファイルを正しく読み取ることのようです #define _GNU_SOURCE #include <fcntl.h> #include <stdi

    9

    1答えて

    オープンファイルオブジェクトが2つあります(destとsrc)。ファイルオブジェクトdestが書き込みのために開かれ、シーク位置がファイル内のあるオフセットに置かれ、ファイルオブジェクトsrcが読み込み用に開かれます。私がしなければならないことは、srcの現在の位置からEOFに読み取って、できるだけ早く内容をdestに転送することです。 Javaでプログラミングしていた場合は、FileChanne

    4

    2答えて

    ネットワークはオペレーティングシステムでは私の最悪の領域なので、おそらく不完全な質問をするために私を許してください。私はこれについて数時間読んできましたが、ちょっと頭に浮かんでいます。 (私には、ネットワーキングプロトコルを考え出すのと比べてチップデザインが簡単だと感じています。) 私は、ソケットを介して互いに通信するネットワークサービスをいくつか持っています。具体的には、ソケットはfd = so

    7

    1答えて

    Javaではjava.nioライブラリを使用し、FileChannel.transferTo()とFileChannel.transferFrom()を使用します。 (特に)C#で何か類似しているのですか、どこからunamanaged .dllをロードする必要がありますか?この場合、Googleは役に立ちませんでした。 編集:私は.NET 3.5をターゲットにしていることに注意してください。

    3

    1答えて

    私はOpenCLを使用して画像処理を行い、RGBB画像をフレームバッファに直接書き込むために使用したいと考えています。ワークフローを以下に示す。 1)フレームバッファをユーザ空間にマップする。 2)フレームバッファに結果をマッピングするclEnqueueMapBufferを使用) "CL_MEM_ALLOC_HOST_PTR" 3のフラグとclCreateBufferを用いOpenCLのバッファを

    6

    1答えて

    cudaHostGetDevicePointerによってマップされたメモリにゼロコピーを使用します。 thrust::host_vectorを使用することができますか、またはcudaHostAlloc(...,cudaHostAllocMapped)? を使用する必要がありますか、それとも何か推力で行うのが簡単ですか?

    0

    1答えて

    GoogleのFlatBufferを使用する場合、使用されるタイプはByteBuffer(これはちょうどbyte[]です)です。私はHttpServletResponseでこれを使用しています。問題はサーブレットPrintWriterにはbyte[]またはByteBufferと書かれていません。 別のタイプにByteBuffer/byte[]をコピーすることなく、HttpServletRespon

    1

    2答えて

    いくつかのソケットの質問があり、それが再投稿の場合は事前に謝罪しています:)プラットフォームはLinux 2.6.30、C++アプリケーションです。ネットワークにまだまだ新しく、スピードアップしています。 ソケットAPIスレッドは安全ですか?たとえば、ミューテックスを使用せずに複数のスレッドから送信した場合、または自分のミューテックスを使用して送信する必要があるかどうかを確認する必要がありますか?

    2

    2答えて

    ユーザー空間から読み書きする必要があるPCIデバイスがあります。私はゼロコピーを使用しようとしています。ユーザー空間のアドレスの物理アドレスをユーザー空間内に完全に割り振り、固定したり取得したりする方法はありますか?たとえば、virt_to_physやget_user_pagesを呼び出すカーネルモジュールを用意する必要がありますか?デバイスのメモリは、MMIOを介してユーザー空間のメモリにマップ

    10

    1答えて

    私はsplice()を使って複数のソケットに書き込むためにtee()で "master"パイプを複製します。もちろん、これらのパイプは、宛先ソケットにどのくらいスプライスすることができるかによって、異なる速度で空になります。だから私は次に "マスター"パイプにデータを追加してから、それを再びtee()しようとすると、64KBをパイプに書き込むことができますが、 "スレーブ"パイプの1つに4KBだけ