移动应用效率对比,Xamarin表现优异!

翻译 2015年12月25日 11:40:42

自从上一个博客发表之后,我决定做一个更全面的测试,其中包括更多的开发语言和平台。这一次,我添加了Java, Swift, C# 和 Ruby。 我把函数迁移到了 Objective-C,JavaScript和C++上, Object-C 是作为iOS的性能的比较基准,JavaScript可以让我测试WebView, 移动浏览器和Titanium框架,至于Facebook的React Native 框架,等到他发布之后,我也会加入测试。


测试步骤

和上次一样,我运行每个测试10次取平均值,我修改了一些代码,目的是让这个测试函数产生更多的运算。下面是所有的测试环境

  • Apple iPad Air 2 / iOS 8.2
  • Apple iPhone 6 / iOS 8.2
  • HTC Nexus 9 (2014) / Android 5.0.1
  • Motorola Moto X (2014) / Android 5.0
  • Xcode 6.3 beta 3(6D532l)
  • Android Studio 1.1.0
  • RoboVM 1.0 (1.0.0.201503101143)
  • RubyMotion 3.6
  • Xamarin Studio 5.8 (Xamarin.iOS 8.8.0.2 / Xamarin.Android 4.20.0.37)
  • J2ObjC 0.9.6.1
  • Titanium Studio 3.4.1.201410281727 / Titanium SDK 3.5.0

测试的代码在 https://github.com/harrycheung/Mobile-App-Performance.


结果





结论

Xamarin的表现优异,比Object-C 要快30%。Xamarin在业内已然成为一个山大王,让你很难找到不用他的理由。当然,大家会发现,这一次的结果和上一次有很大的不同,这是因为有网友(@migueldeicaza)指出在上一次的测试中,我不应该用DateTime.UtcNow,因为它有效率上的问题。于是,在这次的测试中,我就把它去掉了,得出现在的结果。不得不说,这个结果真的好到爆。


作为Objective-C的补充,我们可以看到J2ObjC表现很不错,他把Java的代码转换成Objective-C,且增加了10%的效率。而当我们使用Swift做中间库,去链接Objective-C 或者J2ObjC的时候,我们发现他们的效率相同,我觉得Swift作为中间库,消耗了很多资源。


官方已经release了RoboVM,效率跟Objective-C比起来还是很不错的,我到真心希望它能支持Xcode的storyboards


Safari和WKWebView的表现大致相同。可以看出,苹果做了一些Javascript引擎上的优化,使得他们的表现优于Chrome和Titanium。

这里要提一下RubyMotionRubyMotion是将Ruby编译成ARM的汇编。但相比于Javascript的优异表现,RubyMotion竞争力还是不足。



我感到奇怪的是Android WebView的效率和Chrome Android的效率有很大不同,我开始认为他们是用了同样的引擎,其实不是。


15/03/17日更新

有网友(@jl_hfl)指出,在Swift中的Point,我用class 而不是struct,会限制了Swift的效率。于是,我重构了代码,结果我们就有了新的山大王。我很喜欢看到这些效率上的提升,也希望大家多给我建议,让我们一起优化这些App


15/03/19日更新

很多人都问我,迁移代码到C++的问题。跟预期的一样,C++的效率在两个平台上都是最高的,但令人欣慰的是,Swift,Xamarin 和RoboVM跟C++ 也十分接近。 我现在和一些团队合作,进行汇编代码的迁移。


15/03/22日更新

我加入了HTC Nexus 9 进行比较。这里要说一点的是,Chrome的Javascript引擎,在两个平台上有很大的差距,HTC Nexus 9 要比Moto X 快很多,这主要是由于Nvidia 的 K1 Tegra CPU的优化。


15/03/23日更新

我加入了iPhone 6 用来测试,我发现J2ObjC的效率居然比Objective-C要高,我在iPad 2 Air上又确认了一遍。这次测试与之前测试最大的区别就是我重构了一些代码,之前我是复制一部分文件到各个测试用例的,可能在这个过程中,出现了些问题,现在我是从代码中获取这些文件的,以保证测试用例的文件都来自同一个地方。


总体来说,iPad Air 2在单个CPU内核的运算速度上,并没有比iPhone 6 快多少。 他们的CPU很接近,只不过iPad有更多的内核,并且有100MHZ的差距。 但是值得注意的是WKWebView 的效率在这两个平台上是一样的,我不明白其中的原因。通常的解释是因为带宽和网络的瓶颈所导致的,但是我的App并没有用这些资源。


译者注:本文转自大神Harry Chenug 的博客,他是Google的前雇员


CSDN软件商城:http://mall.csdn.net/tool

电话:010-57410251    邮箱:sw_service@csdn.net    QQ :2714137330

xamarin其是一个鸡肋么?

xamarin其是一个鸡肋么?xamarin其是一个鸡肋么?xamarin其是一个鸡肋么?
  • u012004932
  • u012004932
  • 2016年08月26日 14:09
  • 441

xamarin其实也是一个鸡肋

刚刚体验了一把VS 2015,后来因为部分sdk和工具下载太慢,还是最终决定卸载。顺道了解了下xamarin studio。个人感觉Xamarin完全也是一个鸡肋,没必要过多的时间在xamarin上面...
  • aofengdaxia
  • aofengdaxia
  • 2014年12月12日 12:03
  • 78681

visual studio 2017 xamarin 的性能小疑问

好久没写了博客了,今天休息终于狠心配置了电脑性能还不错,于是安装了WIN10+VS2017 15.2 打开XMARIN的一个例子程序进行生成,发现性能方面有待提高啊,第1是VS2017默认选择微软的模...
  • hecgaoyuan
  • hecgaoyuan
  • 2017年05月14日 14:24
  • 1984

xamarin和qt5.4优缺点(浅谈)

学习移动开发已经有一断时间了,在网上看到xamarin这个支持跨平台的开发工具本打算闲下来的时候找个时间安装体验一下到底如何,在群里或者是网上看到了xamarin几个版本的介绍和说明使用,觉得还可以吧...
  • hecgaoyuan
  • hecgaoyuan
  • 2014年12月24日 10:02
  • 2677

用VS2015中Xamarin开发跨平台APP的感受(二)

上篇文章主要讲了用VS2015中Xamarin开发跨平台APP上手体验,时至今日,用Xamarin进行跨平台开发又有一段时间了,今天就具体开发过程中要面对的东西,说说开发感受。Xamarin.from...
  • u014650759
  • u014650759
  • 2016年12月22日 16:45
  • 5237

.NET Framework、.NET Core、Mono、Xamarin之间关系

本是同根生 截止2017年7月,这些项目均为微软.NET Foundataion旗下开源项目,微软朝着商业和开源两种途径,将.NET平台开源、跨平台化,以适应云计算、移动互联网时代的要求。2000...
  • MePlusPlus
  • MePlusPlus
  • 2017年07月28日 12:06
  • 1313

Xamarin AndroidVS2017开发环境搭建

  • 2017年07月10日 15:55
  • 2.74MB
  • 下载

Xamarin Studio开发Android应用

原文链接1.下载Xamarin Studio http://www.xamarin.com/download 2.运行Xamarin Installer 截图如下: 依次按图示顺序勾选...
  • u010132993
  • u010132993
  • 2016年12月29日 22:25
  • 378

为什么移动端跨平台开发不靠谱?

前言 翻墙偶然读到一篇不错的文章,随手翻译,作者是jielse发表于androidHub。 随着智能手机的发明,许多开发人员都提出了同样的问题:如何为多个移动平台构建和发布应用程序? 包括最初...
  • u010321471
  • u010321471
  • 2017年10月27日 03:30
  • 5730

谁偷了我的热更新?Mono,JIT,IOS

转载出处(http://www.cnblogs.com/murongxiaopifu/p/4278947.html )作者信息慕容小匹夫 阅读目录 前言从一个常见的报错说起美丽的JIT 回到目...
  • bianchengxiaosheng
  • bianchengxiaosheng
  • 2015年05月05日 11:28
  • 3673
收藏助手
不良信息举报
您举报文章:移动应用效率对比,Xamarin表现优异!
举报原因:
原因补充:

(最多只允许输入30个字)