_Lyux 2015-01-21 07:45 采纳率: 100%
浏览 5668
已采纳

java byte 数组初始化效率问题

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

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

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

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

拜谢各位大牛指教~.

  • 写回答

2条回答 默认 最新

  • _Lyux 2015-02-06 02:46
    关注

    已研究过,结论如下:
    这个就是不应该每次都去new一块buffer出来,因为在每30ms执行一次的代码块中这样做,会频繁触发虚拟机GC,严重影响性能.
    所以一定要采用事先分配好buffer的做法.

    关闭该问题.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stm32c8t6工程,使用hal库
  • ¥100 有偿求易语言word文档取doc和docx页数方法或模块
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低
  • ¥15 目标计数模型训练过程中的问题
  • ¥100 Acess连接SQL 数据库后 不能用中文筛选
  • ¥15 用友U9Cloud的webapi
  • ¥20 电脑拓展屏桌面被莫名遮挡
  • ¥20 ensp,用局域网解决