有一段代码,每个30ms从jni得到一个byte数组(存储YUV420数据).现在的问题是,以下两种做法,哪种效率更高些.设备对内存较为敏感.在启动这段代码前,先分配一个预估大小的byte[]数组在每次数据到来时,再去根据大小分配byte[]数组的大小当然如果每次得到的数据大小接近,应该还是第一种方法好些.
所以我的问题也可以简化为:new byte[] 这种语句对效率的影响有多大呢?
已研究过,结论如下:
这个就是不应该每次都去new一块buffer出来,因为在每30ms执行一次的代码块中这样做,会频繁触发虚拟机GC,严重影响性能.所以一定要采用事先分配好buffer的做法.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。