gpt4 book ai didi

Android 最佳缓冲区大小

转载 作者:IT老高 更新时间:2023-10-28 23:27:53 25 4
gpt4 key购买 nike

在 java 中有一个 32 Kb 的最佳缓冲区大小,这完全基于所使用的 cpu 架构。在 Android 手机上,Dalvik VM 是否动态地知道 cpu 的正确缓存以获得最大的缓冲区大小,而与许多不同的手机无关?如果是这样,我将如何在运行时解决这个问题?

假设我想优化音频录制 Activity ,将缓冲区设为最大且最快。我知道您可以获得最小尺寸,但最佳尺寸呢?

最佳答案

也许这取决于您拥有或介意的设备。

但是,在实验上,8K < 缓冲区大小 < 32K 确实运行良好,并且在 8K 下有显着的性能提升。有趣的是,一些缓冲区 > 64K 的数据表现出比缓冲区低于 64K 的数据更差的性能

(我已经在几个安卓设备上进行了测试,并尝试读取具有各种缓冲区大小的 20MB 二进制文件。)

这是 exp 结果,如果您想以漂亮的形式转换数据,最好将它们粘贴到电子表格中。 header 表示缓冲区大小,单位是毫秒

图表:http://fb.com/photo.php?fbid=468345876512381

                   128     256     512     1K      2K      4K      8K      16K     32K     64K     128K    256K    512K    1M      2M      4M      8M      16M
Galaxy S 4047 3060 269 155 100 65 64 52 51 45 47 50 49 43 44 46 45 58
Optimus LTE 1178 617 322 172 101 65 47 42 41 35 36 39 44 61 56 51 72 60
HTC EVO 3971 1884 941 480 251 141 95 69 56 50 48 55 50 49 48 48 48 47
Galaxy S2 750 383 210 123 74 50 41 37 35 34 34 37 39 44 46 44 45 44
Galaxy Nexus 2272 1216 659 341 187 108 70 52 41 38 38 45 44 54 56 66 68 58
Galaxy Note 1549 799 404 220 127 75 58 54 52 56 52 45 44 62 43 39 44 46

InputStream in = openFileInput(FILE_NAME);
startTime = System.currentTimeMillis();

while (in.read(buffer) > 0) {
readCount++;
}

elapsedTime = System.currentTimeMillis() - startTime;

enter image description here

关于Android 最佳缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com