c++代码在以Objective-c为主的项目中运行非常慢
C++ code run very slow in a predominantly Objective-c project
我需要在一个项目中添加一种特殊的图像格式。客户端只提供了一个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项目中的合理水平?
考虑到它们的尺寸和电池限制,iOS设备相对强大,但它们无法与现代Mac或PC相提并论。当在设备上运行时,与模拟器相比,您可能会发现任何代码(c++或其他)的运行速度都明显减慢。当你说你"都在类似的电脑上"测试时,你是指彼此相似还是类似于iPhone 4?我比较了在Mac和PC上c++实现的性能,一个移植到pc上的c#实现——都在类似的计算机上,CPU和memory-wise。缓慢的性能只存在于Objective-C项目中,在设备上比在模拟器上更明显。
我不知道使用c++和Objective-C有什么特别的性能损失。你可以自己测试一些非常简单的基准,用c++和Objective-C编码,比较执行时间。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 无法在C++项目上运行 Meson
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 将项目添加到队列时运行线程
- C++项目编译强制使用 /clr 选项,尽管在没有公共语言运行时支持的情况下执行它
- 如何从 CLion 的运行窗口中删除程序项目路径
- Eclipse/CDT_C++给出"语义错误_"类型XXX无法解决"。项目运行
- 我可以在不创建项目的情况下在Visual Studio 2019中编译和运行HelloWorld.cpp吗?
- 如何在不受其他文件影响的情况下"by itself" Visual Studio 项目中运行C++文件?
- 在 Visual Studio 解决方案中设置所有项目的运行时库
- 如何编译和运行一个新的 C++ Actor 框架项目?
- 如何从Qt C++项目运行Python函数
- 如何使用于 catch2 测试和项目运行的 cmake 目标更具可扩展性和合理性?
- 从 WebAPI 项目运行静态类时出现 StackOverflow 异常 - 从控制台应用程序运行时工作正常
- 从电子项目运行的可执行文件未加载资源
- C++将项目作为独立文件运行,而不是作为Code::Blocks项目运行
- {Qt5.0.2/QML/QtQuick2.0/ c++}示例项目运行时没有错误