Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的iPhone软件太慢了!_Iphone_Testing_Performance - Fatal编程技术网

我的iPhone软件太慢了!

我的iPhone软件太慢了!,iphone,testing,performance,Iphone,Testing,Performance,我将一个mac应用程序移植到iphone上。哇!太慢了!起初我开始想也许我在做大量的磁盘访问。但当我开始寻找时,我意识到我只是对二进制文件进行偏移读取。我只读取了大约512字节的数据。我还有一个巨大的数组。可能是2MB。但是为什么会很慢呢?它被允许位于内存中 我很想听听你们大家的想法 很难通过Stackoverflow调试应用程序,但iPhone应用程序运行速度慢得多的原因有很多:你的mac应用程序可能运行在最新的CPU上,内存大得多,而iPhone的内存非常有限(据说3GS的CPU频率为600

我将一个mac应用程序移植到iphone上。哇!太慢了!起初我开始想也许我在做大量的磁盘访问。但当我开始寻找时,我意识到我只是对二进制文件进行偏移读取。我只读取了大约512字节的数据。我还有一个巨大的数组。可能是2MB。但是为什么会很慢呢?它被允许位于内存中


我很想听听你们大家的想法

很难通过Stackoverflow调试应用程序,但iPhone应用程序运行速度慢得多的原因有很多:你的mac应用程序可能运行在最新的CPU上,内存大得多,而iPhone的内存非常有限(据说3GS的CPU频率为600MHz,内存为256MB)。此外,Mac应用程序在内存使用方面更为宽容;至于iPhone,重要的是只在需要时创建所需对象,在不再使用时释放它们。延迟对象取消分配也会导致一些减速


我建议使用Instruments性能评测工具,它与XCode和开发人员工具捆绑在一起。它将提供关于瓶颈是什么的好提示。

当您遇到重大性能问题时,首先要解决的工具是。从“使用性能工具运行>CPU采样器”开始,了解应用程序在哪里花费时间。在那之后,检查对象分配,看看你是否对内存的影响比你应该做的更大。与Mac相比,iPhone是一个资源受限的环境。你认为最快的东西会极大地影响iPhone的性能。磁盘访问要昂贵得多。甚至分配内存也会产生重大影响(欢迎来到服务器开发人员每天都要面对的世界)。您只有一个核心,所以您在后台线程上停留的内容现在与主线程竞争。这是一个不同的世界。

这应该是一个www.superuser.com的问题。请迁移这个。OP指的是他自己软件的性能;这对苏来说是合适的,而不是苏。