我有一些需要与 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/