iOS native+web混合式开发性能分析

最近,利用业余时间学习web主要是移动web,虽不能说的上精通,但起码也有一定的认识,而关于native和web之间争论也从未听过,网上关于这方面你的文章一大堆,比如说知乎的这篇:Web App 和 Native App,哪个是趋势。而到底他们之间,性能方面的有哪些差异呢,要自己测一测才清楚。

所以,以新浪微博为例子,接下来我新建两个Xcode工程,一个使用原生的UITableView和coreText作为布局和排版(使用新浪开放平台接口),另外使用基于UIWebView加载(链接为http://m.weibo.cn)。为了,测试数据的真实性,我没有界面只停留在首页,点击想起内容和标签我并没有操作.接下来看两站截图:

   

可以看到,左边那张图是app界面,右边那张是使用浏览器打开的,他们都用我的账号@Vison李文深登陆,不用说,我们都知道原生app的用户体验和流畅度都要比网页的都要好。而我们开发者一般都知道native app性能都要比web app好。只要差异有多大呢,接下来就用数据来说话了(我测试的工具为Xcode6.3.2)

一:内存使用比较

二:网络使用情况比较

总结:

1)两种app都同时运行了三分多钟,都下拉的微博数量一样,native的内存使用情况为平均为70.4M,最高为73.8M,web的使用情况为平均98.9M。最高喂129.1M。可以看得出,native的性能远高于web,同时web的最高内存使用飙得很高的话,很容易产生crash现象

2)native首次加载使用流量为0.8M,而web为3.1M(使用sqlite数据库缓存),第二次native使用流量为5.4K,web使用了0.1M(使用浏览器自带功能缓存)。这里也可以看得出,使用网络情况,native也完爆web,但我直觉觉得未必,但说不出原因o(╯□╰)o。

虽然说,native在体验上和流畅度由于web,但是以下这些它是比不上web的:

1)web使用强大的webkit功能,使之在不同平台下有很好的兼容性,使开发效率大大提高

2)各种js框架,是web在app开发上很方便,例如jquery-mobile,bootstrap响应式设计使之兼容各种屏幕,开发人员不需太多考虑屏幕适配

3)强大的发布能力,由于web放在远程服务器,我们只需更新web的资源用户就可以立即响应到。

.....

时间: 2024-08-11 07:42:14

iOS native+web混合式开发性能分析的相关文章

iOS.访问 Web Service.MKNetworkKit_POST

#import <UIKit/UIKit.h> #import "T20140628025249NSNumber+Message.h" #import "T20140628025249NSString+URLEncoding.h" #import "MKNetworkEngine.h" #import "MKNetworkOperation.h" @interface T20140628025249ViewCont

iOS.访问 Web Service.同步GET请求方法

1.字符串转换为URL字符串NSString分类 #import <Foundation/Foundation.h> @interface NSString (URLEncoding) -(NSString *)URLEncodedString; -(NSString *)URLDecodedString; @end #import "T20140628013418NSString+URLEncoding.h" @implementation NSString (URLEn

cocos2d-js-v3.0-rc0 下 pomelo-cocos2d-jsb native web 配置

一.基本步骤 注意:pomelo-cocos2d-jsb 没有用 https://github.com/NetEase/pomelo-cocos2d-jsb,原因这个不是最新版,另外,component根文件没有 pomelo-cocos2d-jsb 用的是 https://github.com/NetEase/chatofpomelo-websocket/tree/master/web-server/public/js/lib 这个是最新版,另外可以更新 具体步骤: 1.1下载zip文件 wg

cordova与ios native code交互的原理

非常早曾经写了一篇博客,总结cordova插件怎么调用到原生代码:cordova调用过程,只是写得太水.基本没有提到原理.近期加深了一点理解,又一次补充说明一下 js调用native 以下是我们产品中的代码片段: datePicker.show(options, function (date) { var month = date.getMonth() + 1; callback(null, date.getFullYear() + "-" + month + "-"

iOS.访问 Web Service.异步GET请求方法

#import <UIKit/UIKit.h> #import "T20140628024750NSNumber+Message.h" #import "T20140628024750NSString+URLEncoding.h" @interface T20140628024750ViewController : UITableViewController<NSURLConnectionDelegate> @property (nonato

iOS.访问 Web Service.异步POST请求方法

#import <UIKit/UIKit.h> #import "T20140628024917NSNumber+Message.h" #import "T20140628024917NSString+URLEncoding.h" @interface T20140628024917ViewController : UITableViewController<NSURLConnectionDelegate> @property (nonato

iOS.访问 Web Service.MKNetworkKit_GET

#import <UIKit/UIKit.h> #import "T20140628025200NSNumber+Message.h" #import "T20140628025200NSString+URLEncoding.h" #import "MKNetworkEngine.h" #import "MKNetworkOperation.h" @interface T20140628025200ViewCont

iOS.访问 Web Service.使用下拉刷新控件

#import <UIKit/UIKit.h> #import "T20140628025702NSNumber+Message.h" #import "T20140628025702NSString+URLEncoding.h" @interface T20140628025702ViewController : UITableViewController @property (nonatomic,strong) NSMutableArray *lis

PHPHub 所有项目正式开源! (包括 iOS, Android, Web, Server, UI)

说明 趁着 团队寻找新项目 的时间空隙, 我们团队 作为练手, 为 PHPHub 做了 iOS 和 Android 客户端, 并开源, 供大家互相学习参考, 欢迎各种提 issue 和 pr ;-) PHPHub related projects PHPHub-iOS by @Aufree PHPHub-Server by @NauxLiu PHPHub-Android by @Kelvin and @Xiaoxiaoyu PHPHub-UI by @Summer and @Aufree PHP