c++代码在以Objective-c为主的项目中运行非常慢

C++ code run very slow in a predominantly Objective-c project

本文关键字:项目 运行 非常 代码 Objective-c c++      更新时间:2023-10-16

我需要在一个项目中添加一种特殊的图像格式。客户端只提供了一个c++库。一旦在一个以Objective-C为主的项目中编译(也就是说,一个项目的所有其他代码都在Objective-C中),库的工作就会非常缓慢

我比较了在Mac和PC上的c++实现的性能,以及移植到PC上的c#实现——所有这些都是在彼此相似的计算机上(CPU和内存方面)。缓慢的性能只存在于Objective-C项目中,在设备上比在模拟器上更为明显。我希望设备(iPad)的CPU比mac/pc低,但不希望从模拟器中的0.2秒图像解析到设备上的惊人的2.4秒!所有的c++代码添加到一个Objective-C项目执行这么慢吗?

调整了所有编译器类型,许多编译器首选项。此外,实现c++代码需要花费大量的时间在琐碎的操作上(简单的指令,如++'s和+='s)。

我应该如何处理这一点,以获得c++库的性能在objective-c项目中的合理水平?

我比较了在Mac和PC上c++实现的性能,一个移植到pc上的c#实现——都在类似的计算机上,CPU和memory-wise。缓慢的性能只存在于Objective-C项目中,在设备上比在模拟器上更明显。

考虑到它们的尺寸和电池限制,iOS设备相对强大,但它们无法与现代Mac或PC相提并论。当在设备上运行时,与模拟器相比,您可能会发现任何代码(c++或其他)的运行速度都明显减慢。当你说你"都在类似的电脑上"测试时,你是指彼此相似还是类似于iPhone 4?

我不知道使用c++和Objective-C有什么特别的性能损失。你可以自己测试一些非常简单的基准,用c++和Objective-C编码,比较执行时间。