我将我的一个mac应用程序移植到了iphone上。哇!!!这很慢!起初我开始想我可能正在进行大量的磁盘访问。但是当我开始寻找时,我意识到我只是对二进制文件进行了偏移读取。我只读了大约512字节的数据。我也有一个巨大的数组。也许2MB。但为什么会这么慢?它永远位于记忆中。
我很想听到你们的一些想法!
答案 0 :(得分:2)
如果遇到重大性能问题,首先提取的工具是Instruments。从“使用Performance Tool> CPU Sampler”开始,了解您的应用花费时间的位置。之后,检查对象分配,看看你是否比你应该更难打击内存。与Mac相比,iPhone是一种资源有限的环境。您认为快速的事情会极大地影响iPhone的性能。磁盘访问要贵得多。即使分配内存也会产生重大影响(欢迎服务器开发人员每天处理这个问题)。你只有一个核心,所以你在后台线程上停留的东西现在与你的主线程竞争。这是一个不同的世界。
答案 1 :(得分:1)
很难通过Stackoverflow调试应用程序,但是有很多原因导致iPhone应用程序运行速度慢得多:你的mac应用程序可能运行最新的带有大量内存的CPU,而iPhone则非常有限(传言3GS)拥有600MHz RAM的600MHz CPU)。此外,Mac应用程序在内存使用方面更宽容一些;至于iPhone,重要的是只在需要时创建所需的对象,并在不再使用时释放它们。延迟对象解除分配也会导致一些减速。
我建议使用与XCode和Developer工具捆绑在一起的Instruments性能分析工具。它会提供有关瓶颈的好建议。