我需要向项目添加一种奇异的图像格式。客户只提供了一个c++库。一旦在主要是 Objective-C 的项目(即所有其余代码都在 Objective-C 中的项目)中编译后,该库的工作速度非常慢
我比较了 Mac 和 PC 上的 C++ 实现的性能,以及将 C# 实现移植到 PC 上的性能 - 所有这些都在彼此相似的计算机上(CPU 和内存方面)。性能缓慢仅出现在 Objective-C 项目中,在设备上比在模拟器上更为明显。我预计设备 (iPad) 的 CPU 会低于 Mac/PC,但不会从模拟器中的 0.2 秒图像解析变成设备上每个图像惊人的 2.4 秒! 添加到 Objective-C 项目中的所有 C++ 代码执行速度都这么慢吗?
调整所有编译器类型,许多编译器首选项。此外,通过时间分析来实现 C++ 代码在琐碎的操作上需要花费大量时间(简单的指令,例如 ++ 和 += )。
我应该如何解决这个问题,以便使 c++ 库的性能在 Objective-C 项目中达到合理的水平?
考虑到 iOS 设备的尺寸和电池限制,其功能相对强大,但它们无法与现代 Mac 或 PC 相比。与模拟器相比,在设备上运行时,您会发现任何代码(无论是 C++ 还是其他代码)都会显着减慢。当您说“全部在相似的计算机上进行测试”时,您的意思是彼此相似还是类似于 iPhone 4?我在 Mac 和 PC 上比较了 C++ 实现的性能, 在 PC 上移植的 C# 实现 - 全部在类似的计算机 CPU 和 记忆方面。性能缓慢仅出现在 Objective-C 项目中, 在设备上比在模拟器上更明显。
我不知道将 C++ 与 Objective-C 一起使用会带来任何特定的性能损失。您可以通过提出一些非常简单的基准测试,用 C++ 和 Objective-C 对其进行编码,并比较执行时间来自行测试。