zoukankan      html  css  js  c++  java
  • Netty 4(一) zero copy

    Netty的“零拷贝”主要体现在如下三个方面:

    1) Netty的接收和发送ByteBuffer采用DIRECT BUFFERS,使用堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的

    堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中。相比于堆外直接内存,消息在发

    送过程中多了一次缓冲区的内存拷贝。

    2) Netty提供了组合Buffer对象,可以聚合多个ByteBuffer对象,用户可以像操作一个Buffer那样方便的对组合Buffer进行操作,避免了传统通过内存

    拷贝的方式将几个小Buffer合并成一个大的Buffer。

    3) Netty的文件传输采用了transferTo方法,它可以直接将文件缓冲区的数据发送到目标Channel,避免了传统通过循环write方式导致的内存拷贝问题。

  • 相关阅读:
    Oracle 函数
    ecplise 修改编码
    mysql json 使用 类型 查询 函数
    java 子类强转父类 父类强转子类
    java UUID
    Java Number & Math 类
    java String类
    apache StringUtils 工具类
    apache ArrayUtils 工具类
    java Properties
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/4075299.html
Copyright © 2011-2022 走看看