<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                &nbsp; ### 5.1 零拷貝 零拷貝指的是數據不會重復拷貝到JVM內存當中,用戶態和內核態之間沒有拷貝操作,數據直接由內核緩沖區拷貝到另外的IO緩沖區(例如網卡的Socket緩沖區)。 以一般的Socket讀寫操作為例:將一個本地文件通過IO讀出并寫到網卡中。 ~~~java File f = new File("helloword/data.txt"); RandomAccessFile file = new RandomAccessFile(file, "r"); byte[] buf = new byte[(int)f.length()]; file.read(buf); Socket socket = ...; socket.getOutputStream().write(buf); ~~~ :-: ![](https://img.kancloud.cn/94/81/948100e00835ab21cb9aaf7ccf3f0604_492x263.png) * Java本身并不具備IO讀寫的能力(所有的應用程序都是),對于IO讀寫的操作,要去調用操作系統提供的相關系統調用函數,通過系統調用會將進程從用戶態切換到內核態(int 0x80)。 * 接著操作系統會通過DMA的方式進行IO的讀寫操作`拷貝(1)`,這個時候不用CPU參與,但是相對應的用戶線程要被阻塞。 * 操作系統將數據從IO設備中讀取出來之后存放到內核緩沖區中,接在再`拷貝(2)`到用戶緩沖區中,這個過程從內核態轉換到用戶態。 * 用戶緩沖區在處理數據之后調用writer方法將輸入寫入內核緩沖區(Socket緩沖區)(`拷貝(3)`),這個過程也要發生一次用戶態到內核態的轉換。 * 接著操作系統再使用DMA的方式將Socket緩沖區的內容寫入到網卡中。(`拷貝4`) 可以發現:這個過程發生了3次用戶態和內核態的切換,4次數據拷貝。 而在使用了直接內存之后就可以對數據的拷貝過程進行優化:
                  <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>

                              哎呀哎呀视频在线观看