android Float.parseFloat 浮点性能太慢了,十多分钟跑不完,有什么加速的办法吗?

2015-06-30 13:46:57 +08:00
 gamexg

百万级的浮点数 Float.parseFloat 解析文本文件载入。测试硬件是高通810,十多分钟也跑不完。

主要耗时在 Float.parseFloat 函数,有什么办法可以加快载入速度?

或者是用什么格式可以使java载入速度加快?

9642 次点击
所在节点    Android
9 条回复
gamexg
2015-06-30 14:12:01 +08:00
还是x86性能牛啊。

x86 python耗时:
>>> from timeit import Timer
>>> t=Timer("""float("5466.1299") ""","")
>>> t.timeit(100000)
0.03412444956302352

高通810 android 耗时:
for(int i =0; i<100000;i++)
{
Float.valueOf("5466.1299");
}
耗时:22443毫秒
ivmm
2015-06-30 14:12:01 +08:00
放冰箱冷藏里。降温,频率就不会自动降了。
gamexg
2015-06-30 14:17:32 +08:00
@ivmm 感觉和温度关系不大,至少手机毫无发热感。
lingo233
2015-06-30 14:19:47 +08:00
@gamexg 高通810不是被爆出发热到自毁的地步了么?不上液氮怎么用(⊙_⊙)
ivmm
2015-06-30 14:20:03 +08:00
@gamexg 超频了以后放冰箱。 我觉得物理加速来的实在
sumhat
2015-06-30 14:44:09 +08:00
用 Protobuf
gamexg
2015-06-30 14:51:31 +08:00
刚刚测试了 ObjectInputStream.readFloat ,纯内存 100000 次耗时10494毫秒,比Float.valueOf快一倍,但是也是悲剧的性能。
VYSE
2015-06-30 15:37:00 +08:00
直接jni吧
Clarencep
2015-07-01 09:58:50 +08:00
很好奇LZ为什么要在android里面导入这么多浮点数据?为什么会这么多?为什么不换成整型的呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/202156

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX