这个问题见的比较多,很多人都会说出iOS对于游戏有优化加成,但具体可能又不太了解怎么优化法,我这里简单说说
首先iOS之所以运行效率高,是因为iOS这种不完全的多任务机制,在执行单个app的时候会更专注,效率自然也会提高了。
你们可以发现iOS一路发展过来,越注重多任务,单个任务的执行效率就变得越低,硬件要求也变得越高。
关于任务主要两点:
1.后台--除了几个指定的服务,iOS不允许后台继续运行app
2.状态--进入后台的app,状态会被暂停,此时前台app享受资源优先权
然后,关于调用了GPU硬件(OpenGL ES)的app,又会有更深的优化,简单介绍下其中几点:
1.这些app启动后,首先会初始化资源,然后打包进OpenGL ES对象,这种初始化牺牲一定时间来提升渲染性能。
2.这些app采用动态资源和渲染命令循环的方式来提升CPU和GPU的并行处理。
3.这些app进入后台后,其他内存会被需要的app释放,但纹理,模型等数据会被保留以便切换后更快恢复(配合iOS7之后新加入的background fetch效果拔群),除非内存完全不够用,那么app会被自动销毁。
最后还有Metal更多的加成,简单概括一下:
1.大幅提升drawcall,节省大量的CPU消耗
2.开发者,引擎可以做更多API的操作,避免很多不必要的操作和运算
3.Metal对iOS设备和PowerVR的硬件进行了匹配,又可以节省很多API的操作
Metal主要节省了CPU的消耗,在低CPU开销下实现更好的物理,粒子,动画等效果,增加更多的画面元素(烟雾,阴影,水花等等)。
总而言之,iOS在移动操作系统平台的游戏方面做的确实相当不错。
首先iOS之所以运行效率高,是因为iOS这种不完全的多任务机制,在执行单个app的时候会更专注,效率自然也会提高了。
你们可以发现iOS一路发展过来,越注重多任务,单个任务的执行效率就变得越低,硬件要求也变得越高。
关于任务主要两点:
1.后台--除了几个指定的服务,iOS不允许后台继续运行app
2.状态--进入后台的app,状态会被暂停,此时前台app享受资源优先权
然后,关于调用了GPU硬件(OpenGL ES)的app,又会有更深的优化,简单介绍下其中几点:
1.这些app启动后,首先会初始化资源,然后打包进OpenGL ES对象,这种初始化牺牲一定时间来提升渲染性能。
2.这些app采用动态资源和渲染命令循环的方式来提升CPU和GPU的并行处理。
3.这些app进入后台后,其他内存会被需要的app释放,但纹理,模型等数据会被保留以便切换后更快恢复(配合iOS7之后新加入的background fetch效果拔群),除非内存完全不够用,那么app会被自动销毁。
最后还有Metal更多的加成,简单概括一下:
1.大幅提升drawcall,节省大量的CPU消耗
2.开发者,引擎可以做更多API的操作,避免很多不必要的操作和运算
3.Metal对iOS设备和PowerVR的硬件进行了匹配,又可以节省很多API的操作
Metal主要节省了CPU的消耗,在低CPU开销下实现更好的物理,粒子,动画等效果,增加更多的画面元素(烟雾,阴影,水花等等)。
总而言之,iOS在移动操作系统平台的游戏方面做的确实相当不错。