<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                從一個文件中讀出數據并將數據傳到另一臺服務器上,如果使用JAVA FileChannel的transferTo() 方法可以實現這個過程,該方法將數據從文件通道傳輸到給定的可寫字節通道 ![](https://img.kancloud.cn/f9/82/f982024d771e32babe4b0aa5018f114f_990x648.png) 這種實現,可以有以下幾點改進: * 上下文切換的次數從四次減少到了兩次 * 拷貝次數從四次減少到了三次(其中DMA copy 2次,CPU copy 1次) ``` `File.read(file, buf, len);` `Socket.send(socket, buf, len);` ``` 可替代為: ``` public void transferTo(long position, long count, WritableByteChannel target); ``` 在 UNIX 和各種 Linux 系統中,此調用被傳遞到 `sendfile()` 系統調用中,最終實現將數據從一個文件描述符傳輸到了另一個文件描述符 在 Linux 內核 2.4 及后期版本中,針對套接字緩沖區描述符做了相應調整,DMA自帶了收集功能,對于用戶方面,用法還是一樣,只是內部操作已經發生了改變: ![](https://img.kancloud.cn/3e/b0/3eb0ee93e994de07cbc8d044d85af185_906x638.png) 具體過程: 1、transferTo() 方法使用 DMA 將文件內容拷貝到內核讀取緩沖區。 2、避免了內容的整體拷貝,只把包含數據位置和長度信息的描述符追加到套接字緩沖區,DMA 引擎直接把數據從內核緩沖區傳到協議引擎,從而消除了最后一次 CPU參與的拷貝動作
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看