c++ - 在同一文件中混合使用 C++ 和 Objective-C 时的性能注意事项

标签 c++ objective-c opengl

我有一些需要与 Objective-C 接口(interface)的高性能 C++,将此代码转储到包含我的 Objective-C 代码的 .mm 文件与将此代码放在单独的文件中是否有任何性能损失.cpp 文件并从 .mm 文件中提取我需要调用的所有函数?

最佳答案

这里有一些问题。

(1) 如果您的 C++ 引擎代码独立运行——如果 Objective-C 充当触发底层引擎的前端——那么根本没有惩罚。 ObjC++ 中的 C++ 位像常规 C++ 一样编译。

(2) 如果您从计算引擎内部调用 Objective-C,那么您可能会遇到性能问题。调用 Objective-C 方法会产生开销——objc_msgSend() 不是免费的(但接近于免费)——但通常与函数相比不足以成为问题称呼。然而,在高度优化的 C++ 中,编译器可能会进行优化,在很大程度上消除甚至函数调用开销(它变得复杂)。无法内联或优化 Objective-C 方法调用。

(3)如果你没有测过,发现了性能问题,不用担心...

关于c++ - 在同一文件中混合使用 C++ 和 Objective-C 时的性能注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777707/

相关文章:

ios - 通过文件或通过 json 更新 iOS 数据库?

android - Linux 上的英特尔硬件辅助虚拟化(管理程序)- 错误 : Could not load OpenGLES emulation library

c - 使用 `const` 中断程序

c++ - 深度测试丢弃自定义帧缓冲区上的片段

C++ 错误 : explicit qualification

c++ - 复制构造函数+浅复制和深复制

c++ - 使用stdio.h C++ 中的函数remove(..) 时出现问题

c++ - 跨 unix 文件系统使用带有 popen 的 FILE 描述符时崩溃

objective-c - 如何更改导航栏背景

iphone - 应用程序未主动运行作业,怎么办?