iphone5S,64位CPU完全不用担心内存不够用_iphone5s吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:724,183贴子:
iphone5S,64位CPU完全不用担心内存不够用收藏
作为职业ios开发者,对iphone5s 的64位cpu性能也非常好奇, 对它的兼容性也不放心,因为如果原有的程序如果需要大量的修改才能为iphone5s优化,那么会是非常非常痛苦的事情,会给开发者带来沉重的负担,现在苹果已经发布了开发工具并支持64位程序的编译. 楼主第一时间下载并经过几天的研究, 颇有些意外.
这里打算用非常简单通俗的介绍来和大家分享一下64位cpu在iphone5s的表现预期.
在iphone5s发布会当天, 苹果为开发者推出了xcode5GM版,附带ios7 sdk和新的ios7 64 sdk,这个是前面5个beta版本没有的,通过64位sdk开发者可以在虚拟机环境下模拟iphone5s的64位cpu和M7的运行效果,测试你的app.
楼主打开一个今年新开发的项目,这个项目包含了3d战斗游戏,上网发微博,播放视频等常见的运行负荷,新的编译器不出所料的报了一堆错误, 因为新的ios7 sdk升级了, 很多语法需要改进. 经过一天的修改, 所有警告和错误均被消灭, 楼主长舒一口气, 基本上证明在代码阶段ios7的兼容性没有给我造成巨**烦. 接下来就是为arm64 cpu优化.首先看图片1&晕,怎么在贴子里插图片? 只能放在最后面??&
这幅图片中的arm64是之前所有开发工具都没有的, 以前只有armv7和7s,对应的是iphone4s和iphone5的A5和A6CPU, 意思是你所编译的这个程序,需要兼容哪些cpu.默认已经添加了arm64的支持, 当然你也可以去掉,那么你编译的程序将只能以32位的方式在iphone5s上运行. 楼主修改了程序使得定义和实例都符合苹果64位编程的要求.
OK,开始用虚拟机模拟iphone5和iphone5s的环境,分别测试程序的性能. 这里要说明下虚拟机的环境并不能完全代表实体iphone5s的运算性能,比如浮点和整数运算因为开发用的intel cpu性能大幅领先arm实体cpu,所以基础运行虚拟机会快很多. 内存的占用比较精确,无论虚拟机还是实体机都能准确的表达内存的占用情况. 3D运行效果则是实体机压倒性的领先,因为虚拟机下中3D加速无法用GPU来完成而是CPU虚拟的, 实体机借助强大的GPU比虚拟机快上十倍以上吧,目前无论是ios还是android都还内有办法完美解决3D虚拟机效率低下的问题.
但是今天要探究的是5s和5在64和32位的表现差异, 所以大家都在公平的虚拟机环境下,性能的表现也是有可比性的.
我要测试的这个程序已经在AppStore上发布的,大家搜索陈乔恩就能下载,看下里边的功能就知道复杂程序了, 基本上是个机器负担中等的App. 首先让两个虚拟机都运行这个程序, 啥都不做, 只让程序启动并打开停留在第一个画面1分钟左右, 注意两幅图片顶部有iphone retina 4-inch 64-bit的为虚拟iphone5s, 没有64的为iphone5. 楼主神奇的发现为64位优化后的程序在iphone5s上内存占用为8.1MB而在iphone5上为9.9MB. 这个结果大跌眼镜,没有说错,5s在程序待机情况下居然占用更小的内存, 看来新的苹果编译器还是不吭爹的,具体原因后面再分析. 再说CPU占用, 双方都差不多, 5s的在3%-5%的区间, 5在5%-7%的区间, 5s略有优势而且平稳很多,不会有跳突的情况.
看来待机状态下5s胜出了.
说道内存这里有个题外话, 大家一直在讨论5s的内存是1G还是2G, 以我的开发经验来看,除非是渲染很复杂的3D程序在ipad retina的高分辨率下运行,大家才需要超过512的内存,实际上iPhone设备上开发者只要对程序用心优化过解决了所有泄露问题(这个太专业不讨论), 程序本身内存占用很少超过100MB.
但是如果把程序移植到Android的时候, 由于往往要加上吸费功能至少后台植入隐藏广告或者公开的广告浏览(这个是Android开发的潜规则),优化也是一笔带过, 100MB的内存占用至少跳到300MB.所以安卓系统2G内存是必须的! 在IOS为什么不能添加吸费和其他流氓功能呢? 不是我不想啊,呵呵.
测试完待机, 要测试满负荷运行了, 楼主选中一个需要上网同步大量图片和数据的场景, 因为这种同步或者说火力全开的下载是所有App最常见的功能了, 通常的步骤是 App发出一个网络连接请求, IOS接到这个请求开始通过wifi或者3G去发送这个请求, 如果请求被目标服务器响应, 那么执行下载或者上传, 楼主的程序会有一个将下载的数据缓存到本地存储器以便下次不再需要消耗流量的功能, 这个过程也是需要消耗大量资源的读写过程. 我们看下这个过程5s的arm64的表现:大家注意途中Memory的图标标是内存占用,启动上网同步功能以后, 内存占用从原来的10以内调涨到50+MB,iphone5s调涨到55.3MB, 而iphone5跳到51.3MB, 这下正常了,因为大量的文字和图片数据在64位环境下存储, 64位的机器理论上就要占用更多的内存,所以在满负荷运行数据交互的状态下, 5s要比5额外增加8%左右的内存开销, 当然这个结果是指楼主的这个App,但是楼主认为还是很据代表行的场景.
然后再说CPU, iphone5S的CPU在发起网络同步的那1-2秒内跳涨到30%,然后回落到原来的4%左右, iphone5的CPU也是1-2秒调涨到50%然后回落到8%左右, 看来无论是5还是5s,CPU性能是严重过剩的,用来同时运行10个楼主这样的程序也是小菜一碟吧.
这个回合内存占用5要比5s领先,CPU效率还是5S继续领先5.
楼主还进行了内存leak,文件读写效率,JSON解析效率等64位的效果测试, 由于过程比较专业,有机会和有兴趣的同行讨论.所有测试的结论如下:
1,所有原生的SDK功能, 如使用自带的UI界面等,iPhone5s都比iphone5占用更少的内存和更少的CPU占用, 用户自动以的类和存储5s基本会更多的消耗5-10%的内存,而CPU占用会比5少一些. 这也解释了为啥待机情况下5s内存比5少,因为待机情况下只调用的基本的UI控件. 2,基本上现有的APP,iphone5的性能已经完全够用, 而且iphone4s也能运行ios7并且完美运行99.9%的App,因为包括楼主在内的所有的ios开发者都希望自己的app被更多人使用,所以会呕心沥血的去为老设备优化,除非是实在需要新硬件的一些功能, 否则不会放弃老设备.3,买新机器不推荐4s和4了,至于5s还是5c,运行APP的角度上看,那10%-20%的差异实在没必要纠结. 因为现在的开发者都是以寸屏幕为最佳表现形式来设计App的, 然后看下3.5寸的效果调整下, 最后移植到Android给一个800X480的基准界面,其他分辨率拉伸. 所以Android屏幕再大就算是1080P的,也只不过是800X480的App拉伸下, 想要开发者去做1080P的新UI要准备那么多图片, 不是大公司做项目, 基本不现实. Android不流氓开发者赚不到一毛钱,这个是让人最心寒的.
首次发帖啰嗦了这么多, 请见谅,如果问题,请回帖一起讨论, 有空再把做一个多重循环的压力测试,那个等5s的机器到手以后在实体机上运行再发出来.//我是分割线很多吧友关心5s是1G还是2G的内存, 这个问题再讨论下,1,如果在ipad3,4,5上, 屏幕分辨率是,这个分辨率运行32位色的大量图片渲染和3D模型, 那么内存轻松跳到500MB以上, 加上IOS7本身会占用100-200MB, 2G的内存是完全需要的.2,如果在iphone5s的这个分辨率下, 在无抗锯齿的技术面试前, 所有开发者不会让内存占用达到200MB,基本会控制100-150,因为会考虑到老机型的用户,要赚他们的钱就不能把内存需求做的太大. 所以1G内存在2015年以前是完全可以运行AppStore里的所有App的, 不需要苹果去控制,开发者会按照市场需求去调整.所以终端用户无需关心内存,这个是程序员的工作.
说了半天,我没看懂啥意思!
可否绑定开发者帐号
表示太短 不愿看~
太短没看。。。。
太短没看,但是感觉好像很厉害的样子。
好一个复制粘贴
拿去撸,请叫我雷锋!
从哪复制的,那么长
原来安卓的APP 从IOS上是这样移植过来的 ,其实感觉安卓的APP开发商也不是全部像楼主说的那么可怕。
我尽然看完了
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或华为H30-U10 为什么我下载的崩坏学园2和天天酷跑只有当天能玩 第二天再打开就显示停止运_百度知道
华为H30-U10 为什么我下载的崩坏学园2和天天酷跑只有当天能玩 第二天再打开就显示停止运
华为H30-U10
为什么我下载的崩坏学园2和天天酷跑只有当天能玩
第二天再打开就显示停止运行
我还下载了全民打怪兽和节奏大师都没这样的
如果把手机重启
就发现重启后酷跑和崩坏学园2没了
都已经一周了
天天都这样
怎么解决啊
我有更好的答案
按默认排序
你最好买个内存卡,是内存不够了!不买就删除几个应用就行!
你安装时装在哪了
手机内存还是内存卡
都安装在手机
你清理内存或缓存来吗
相当于是第二天自动删除
但是节奏大师那些没事
没办法,那就是你手机的问题了
可能是软件问题,联系换网站下载
在QQ下不行
SD卡没问题么
装在手机里了
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁