我有一些遗留的 C++,我使用来自 Swift iOS 应用程序的 Objective C++ 桥调用它们。
我首先构建了一个简单的测试应用程序(基本上只是 C++ 调用,周围的 UX 有限)。在此测试应用程序中,C++ 需要 0.4 到 1.4 秒才能完成,使用此模式进行天真测量:
let startedAt:NSDate = NSDate()
self.callOutToCPlusPlus(loads:of, passedIn:values)
print("CPlusPlus done in \(NSDate().timeIntervalSinceDate(startedAt)) seconds")
现在,我已将测试应用程序中使用的相同代码添加到完整应用程序,这需要 3.5 秒。如何诊断减速?
最佳答案
一些想法:
1) 遗留代码是作为 Xcode 项目的一部分构建的吗?如果是这样,您可以使用 Xcode 的性能分析功能来查看减速的位置。 2) 您在测试和完整应用程序中使用相同的优化级别吗? 3) 您是否将相同的数据传递给两个应用中的遗留代码?
希望这对您有所帮助。
关于c++ - 在 Xcode 中诊断来自 Swift 的 iOS C++/Objective C++ 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749671/