当前位置: 首页 > 知识库问答 >
问题:

Reactor网络中字节缓冲区分配器

江温书
2023-03-14

有没有一种方法可以在请求处理程序中获得反应堆网络中使用的字节缓冲区分配器?类似于如何在纯Netty中执行final ByteBufAllocator ByteBufAllocator=ctx.alloc();

HttpServer.create()
        .host("0.0.0.0")
        .port(8080)
        .route(routes -> {
          routes.ws("/ws", (in, out) ->  
            // how to get the allocator here?
          });
        })

共有1个答案

卢元龙
2023-03-14

您可以从WebSocketOutboundHttpServerResponse访问ByteBuFalLocator,如下所示:

HttpServer.create()
        .host("0.0.0.0")
        .port(8080)
        .route(routes -> routes
                .ws("/ws", (in, out) -> {
                    ByteBufAllocator alloc = out.alloc();
                    // ...
                })
                .get("/path", (request, response) -> {
                    ByteBufAllocator alloc = response.alloc();
                    // ...
                })
        );
 类似资料:
  • 我试图理解DirectByteBuffer如何在Linux上工作,并编写了以下在strace下运行的非常简单的程序: 实际上,我期望一些mmap或sys\u brk系统调用直接从操作系统分配内存,但实际上它只是设置请求页面的读写保护。我的意思是: 这似乎是分配直接缓冲区比分配堆缓冲区慢的原因,因为每次分配都需要系统调用。 如果我错了,请纠正我,但是堆缓冲区分配(如果发生在TLAB内部)相当于返回一

  • 问题内容: 有没有一种方法可以使用BufferedReader读取ByteBuffer而不必先将其转换为String?我想读取相当大的ByteBuffer作为文本行,并且出于性能方面的考虑,我想避免将其写入磁盘。在ByteBuffer上调用toString不起作用,因为生成的String太大(它抛出java.lang.OutOfMemoryError:Java堆空间)。我本来以为API中会有一些东

  • 我试图通过扩展现有的Java程序来实现概念验证的内存感知调度功能。程序使用字节[]形式的缓冲区。就我而言,字节[]有问题,因为 他们是垃圾回收 它们是预先分配的,而不是懒惰地分配的(JVM在创建缓冲区时似乎会触及它分配的所有页面) 它们使JVM分配越来越多的内存,而这些内存并没有还给操作系统。 为了实现我的目标,我希望缓冲区能够被延迟分配内存(只有在写入时才分配页面),并且可以按需释放。这与C中的

  • 我正在尝试为DMA Linux编写驱动程序,但我的驱动程序一直无法执行DMA_CONCENTER_alloc,我已经增加了CMA内存和CONCENTERY_pool。。。 我错过了什么? dmesg在物理CPU 0x0上引导Linux<br>Linux版本4.14.0-xilinx-v2018.2(oe-user@oe-host)(gcc版本7.2.0(gcc))#5 SMP抢占Sun二月17日2

  • 缓冲区分析(buffer)是根据指定的距离在点、线和多边形实体周围自动建立一定宽度的区域范围的分析方法。例如,在环境治理时,常在污染的河流周围划出一定宽度的范围表示受到污染的区域;又如在飞机场,常根据附近居民的健康需要在周围划分出一定范围的区域作为非居住区等。 下面以长春数据为例,对“团结路”进行半径为10米的圆头缓冲分析,缓冲区分析的接口使用方法如下: 设置缓冲区分析参数、缓冲区通用参数。 //

  • 提示: ●输入点、线、面指定距离为半径来创建区域。 ●保存图层可以是新建图层或是已有区域图层。 ●缓冲半径数值不能大于50000米。 操作步骤: ①选择"统计分析"模块。 ②点击"缓冲区分析"。 操作动图: [查看原图]