bytebuffer的内存使用记录

     最近开发过程中需要使用到bytebuffer这个类。一开始是这样创建的。

ByteBuffer buffer = ByteBuffer.allocate(50 * 1024 * 1024)

本地测试没有问题,部署到测试环境,并发的时候出现问题了,报错说java no heap space。

查看源码,原来在初始化的时候,会先申请50MB的堆内存。所以多个同时申请,超过内存的话,则会申请不到,报错误。

public static ByteBuffer allocate(int capacity) {
        if (capacity < 0)
            throw new IllegalArgumentException();
        return new HeapByteBuffer(capacity, capacity);
    }

所以,在使用ByteBuffer的时候要注意设置好缓存大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值