--- excalidraw-plugin: parsed tags: [excalidraw] --- ==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' # Excalidraw Data ## Text Elements 零拷贝 vs 传统 I/O ^title 传统 I/O「4次拷贝, 4次切换」 ^pPR2Zi0q 磁盘 ^r8UcNJoO 内核缓冲 ^lOhSI8AQ 用户缓冲 ^ExFxKHzC Socket缓冲 ^GFkKE7aE 网卡 ^nic-text ① DMA ^label1 ② CPU ^label2 ③ CPU ^label3 ④ DMA ^label4 零拷贝「2次拷贝, 2次切换」 ^IIlpdTRV 磁盘 ^P64EyGfA 内核缓冲 ^gSiJQa7m 网卡 ^OdYyV6Ec ① DMA ^label5 ② DMA ^label6 优势: 减少2次CPU拷贝, 减少2次上下文切换 ^A7Gs02Kh 零拷贝 vs 传统 I/O ^title ① DMA ^label1 ② CPU ^label2 ③ CPU ^label3 ④ DMA ^label4 ① DMA ^label5 ② DMA ^label6 %% ## Drawing ```compressed-json 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= ``` %%