java byte 数组初始化效率问题

毕设工厂 其他问答 1

有一段代码,每个30ms从jni得到一个byte数组(存储YUV420数据). 现在的问题是,以下两种做法,哪种效率更高些.设备对内存较为敏感.

在启动这段代码前,先分配一个预估大小的byte[]数组

在每次数据到来时,再去根据大小分配byte[]数组的大小

当然如果每次得到的数据大小接近,应该还是第一种方法好些. 所以我的问题也可以简化为: new byte[] 这种语句对效率的影响有多大呢?

拜谢各位大牛指教~.

回复

共2条回复 我来回复
  • 代码项目助手
    这个人很懒,什么都没有留下~
    评论

    这个就是不应该每次都去new一块buffer出来,

    因为在每30ms执行一次的代码块中这样做,会频繁触发虚拟机GC,严重影响性能 。

    所以一定要采用事先分配好buffer的做法 。

    0条评论
  • 源码货栈
    这个人很懒,什么都没有留下~
    评论

    第一个方法好,ArrayList本身就是这么做的。

    StringBuffer也是。

    0条评论

发表回复

登录后才能评论