【发布时间】:2014-09-03 10:07:43
【问题描述】:
我一直在寻找解决方案至少 2 天没有成功,所以作为我最后的希望,我决定在这里问它。
在工作中,我们有一个使用 OpenCV 的 C++ 代码库,我们想在 iOS 和 Android 上运行。事实证明,整个事情在 Android 上运行速度较慢,我找不到原因。在分析之后,我们知道调用 C++ 代码的方法是两个平台上完全相同的问题。在 Android(Samsung Galaxy S4)上执行需要 140-150 毫秒,而在 iOS(iPhone 5)上则不到 70 毫秒。 我已经阅读了一些关于优化本机代码和使用不同 local_cflags 的文章,但似乎没有帮助。
这是需要承认的事实还是有解决方案? 提前谢谢你,迈克
【问题讨论】:
-
这是两个不同的 CPU。性能差异不大,高端品牌速度更快。对我来说并不奇怪。请注意,Android 手机会更慢;一些中国仿冒品可能会慢 10 倍。
-
这是事实,但 Galaxy S4 的 CPU 规格更好。看起来没关系。
-
确保您使用的是 armeabi-v7a 版本,而不仅仅是普通的 armeabi 版本。普通的 armeabi 构建不使用 FPU,因此如果代码使用大量浮点数,则性能非常有限。 (对于整数运算,差异不应该那么大。)
-
很遗憾我正在使用 armeabi-v7a
-
您无法通过该问题陈述获得有用的答案。您不妨阅读Pro Android Apps Performance Optimizations。
标签: android c++ ios android-ndk