<div dir="ltr">Good morning Jolyon,<div><br></div><div>I think that what you want is a benchmark to measure gui performance. In our case app written in java or c#</div><div><br></div><div>Here is the url <a href="http://www.phonearena.com/news/TouchWiz-speed-test-Does-Samsungs-interface-really-lag_id66407">http://www.phonearena.com/news/TouchWiz-speed-test-Does-Samsungs-interface-really-lag_id66407</a></div><div><br></div><div>I tried that tool gamebench and it does not test code written in xamarin android.</div><div><br></div><div>Regards<br></div><div>Leigh</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 12:51, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>To be honest, I do not have the time to develop app in java and c# just for benchmark purpose. I can only rely on google. :-) All I can say is the app I developed in Xamarin android is fast enough. To get a server call from Sydney, Australia to North Shore city Auckland, nz takes around 70ms is good enough for me. Without network call, working on local database on the samsung tab 2 tablet, the app&#39;s gui response is instant.</div><div><br></div><div>Regards</div><span class="HOEnZb"><font color="#888888"><div>Leigh</div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 12:26, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz" target="_blank">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">A DSP filter ?  Again, focussing on execution efficiency of a highly specialised algorithm, not &quot;real world&quot; application performance.  And there is no reason why you could not incorporate C code in an application where appropriate, even if the bulk of your application does not require or benefit from it.<br><br>You keep coming up with numbers for what appear to me to be highly artificial benchmarks.  These are interesting from a compiler implementation perspective, but not so relevant to real world applications in relation to which you seem to be limited to &quot;guess&quot;, &quot;feel&quot;, &quot;think&quot;.<br><br>If the advantage were as clear cut as you seem to think then there would be no benchmarks in which the exact opposite were established, yet there are.  All we can say then is that the benchmarks are not the whole story.<br><br>After all (dragging this back peripherally to Delphi), FireMonkey is also a native code solution, but a google of &quot;FireMonkey performance&quot; does not yield a litany of praise for the advantage of native code (other than from Embarcadero&#39;s marketing department).  ;)<div><br><br>Unless you develop an application in both Xamarin AND in Java and then compare them to each other, you really have no idea whether what you &quot;feel&quot; is representative or not.  The bottom line is that if your application performance is acceptable, then great.  That&#39;s all you really need be concerned with.  But this does not on it&#39;s own, nor even in conjunction with unrelated benchmarks, lead to the incontrovertible conclusion that it is the best it could possibly be.<br><br><div>imho.  ymmv.<br><br></div></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 11:52, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>Android ART is not end of the story. Compare to native c code, android art is slower.</div><div><br></div><div>Here is the benchmark</div><div><a href="http://www.learnopengles.com/a-performance-comparison-between-java-and-c-on-the-nexus-5/" target="_blank">http://www.learnopengles.com/a-performance-comparison-between-java-and-c-on-the-nexus-5/</a><br></div><div><br></div><div>It is still around double slower than native c code for android art.</div><div><br></div><div>You mentioned about bridge issue, I guess it is not a big deal. It is just like network call. Network call is expensive. Any api call to network just increase a little amount of overhead and can be ignored :-) But I am surprised that xamarin async call is half seconds faster than java android in the benchmark I mentioned. :-)</div><div><br></div><div>I guess the extra time overhead to update title text/ set font size is ignored compared to do the real work. I do not feel slower in my application using xamarin android related to extra overhead api call. I think it is faster than builtin java code in android framework.</div><div><br></div><div>Regards</div><span><font color="#888888"><div>Leigh</div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 11:36, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz" target="_blank">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Real world performance of code is more complicated than whether it is compiled native or not, especially when you are talking about a virtual machine running within or on top of a foreign environment.  Xamarin.Android code may well be native code, but how efficient that code is comes down to the original compiler and then also the JIT compiler.<br><br>In addition, most Android applications will spend a lot of time invoking services of the Android platform.itself, so the performance of the code calling those services may have only a very slight bearing on the overall performance of the application.  Far more significant is the efficiency of calls made between the application code and the platform services.  For any non-platform native approach (Xamarin, FireMonkey) there is necessarily a &quot;bridge&quot; between the application code and the platform, so any performance advantage of the native code on one side that bridge has to offset the overhead of that bridge before it can offer any real advantage.<br><br>And with ART, the platform native application code is now also native code so any advantage there is now - theoretically - entirely lost, leaving only the overhead of the runtime/platform bridge.<br><br>Xamarin&#39;s benchmark tests execution efficiency of their generated code in isolation.  This is a meaningless benchmark since it entirely ignores the real world impact of the overhead necessarily incurred by having to constantly bridge from their execution environment to the platform services on the device.  Maybe Xamarin is faster there too, but if so why not publish some benchmarks demonstrating that to be the case, rather than benchmarks which have no relevance ?  Again: Consider the source.<br><br>Similarly mobile apps tend to spend a lot of time making network calls.  As you yourself observed, that can make a big difference in perceived performance which has nothing what-so-ever to do with the execution efficiency of the code <b>making</b> the network call.<br><div><br></div>More importantly, all software has bugs - the more software you involve in a solution, the greater the chance of encountering a bug that will adversely affect your application and the harder it could be to identify which component is responsible and obtain a resolution from whichever vendor is responsible for that particular component in your stack.  e.g. such as the codegen error in .net framework 4.6 which can introduce bugs even in existing applications.<br><br>Consider the stacks:<br><br>Xamarin:     Xamarin / Mono compiler &gt; Xamarin + Mono frameworks &gt; Mono runtime &gt; Android<br>Delphi:        Delphi compiler &gt; FireMonkey framework &gt; FireMonkey RTL &gt; Android<br>Elements:   Elements compiler &gt; Android<div><br><br><div><br></div></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 11:11, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>The fastest code on android is native code which is compiled by c code. Xamarin Android is based on runtime library which I guess is compiled in C too. Microsoft&#39;s net framework is compile .net code into native code before run the byte code on the real device.</div><div><br></div><div>Regards</div><span><font color="#888888"><div>Leigh </div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 11:07, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>If network round trip time has little or nothing to do with framework, how you explain that url get different time from different framework? I will assume that they will get similar time spent to get data on all framework.</div><div><br></div><div>Dalvik platform is slow which is agree by google. Dalvik is slower than Sun&#39;s jdk on mobile platform I read somewhere on internet. The consideration for dalvik is not speed, but app size.</div><div><br></div><div>Regards</div><span><font color="#888888"><div>Leigh</div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 30 July 2015 at 09:06, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz" target="_blank">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">But Leigh, network round trip times have little or nothing to do with Mono / Dalvik / ART.<br><br>I shall leave the last word on Xamarin to someone else...  <a href="http://www.whitneyland.com/2015/07/xamarin-review-2015.html" target="_blank">http://www.whitneyland.com/2015/07/xamarin-review-2015.html</a><br><br>I would also recommend reading the earlier post from the same author.<br><br>Worth noting in these round-ups is the point about the lack of community assistance when it comes to finding Xamarin solutions to common platform issues (as opposed to the bugs and issues in Xamarin itself).  As mentioned before, RemObjects Elements avoids this problem due to the fact that the solutions for Java / Objective-C from the &quot;native&quot; communities for those platforms, can be applied <b>directly</b> in Elements projects in a way that is not often possible with Xamarin.</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2015 at 15:57, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>It seems that we are going through the benchmark way :-)</div><div><br></div><div>I tried to run the app in the url you mentioned and it crashed. </div><div><br></div><div>How about you look at this url? <a href="http://magenic.com/Blog/Post/4/Mobile-Development-Platform-Performance" target="_blank">http://magenic.com/Blog/Post/4/Mobile-Development-Platform-Performance</a></div><div><br></div><div>My work is getting data from server which is similar to test 3.</div><div>java version shows 2.369s and xamarin version shows 1.738s in that url. That is around half seconds difference.</div><div><br></div><div>I sometimes got around less than 70ms round trip time in my own test to get data from server in sydney, Australian in north shore, Auckland, nz if the server is not busy. That is amazing fast using Xamarin android. </div><div><br></div><div>Most customers are in Australia. I guess that they might get around 50ms round trip time.</div><div><br></div><div>Regards<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div>Leigh</div><div><br></div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2015 at 14:42, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz" target="_blank">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">... and if only I had a million dollars I would be rich.<div><br></div><div><br>As for Xamarin performance, consider the source.  By which I don&#39;t mean the code, I mean who is making what claims.<br><br><a href="http://stackoverflow.com/questions/17134522/does-anyone-have-benchmarks-code-results-comparing-performance-of-android-ap" target="_blank">http://stackoverflow.com/questions/17134522/does-anyone-have-benchmarks-code-results-comparing-performance-of-android-ap</a><br></div><div><br></div><div>Any advantage is only seen in an Intel Android VM.  On ARM (by far the most prevalent in terms of actual Android hardware), Dalvik beat Xamarin almost every time, until Xamarin.Android 4.7.11.<br><br>What is odd about this is that these results are from 2013, over a year after Xamarin posted their claims about <b><u>astonishingly</u></b> superior performance vs Dalvik.  It is interesting that Xamarin do not disclose what environment their benchmarks were run in.  Also interesting that they do not compare themselves to ART which is the more relevant comparison going forward.<br><br>In any event, I don&#39;t think there is any chance that Google will drop ART any time soon (they already dropped Dalvik) in favour of a Mono based implementation of Android.  ;)<br></div><div><br><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2015 at 13:51, Leigh Wanstead <span dir="ltr">&lt;<a href="mailto:leigh.wanstead@gmail.com" target="_blank">leigh.wanstead@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jolyon,<div><br></div><div>I mentioned to you before in the thread. If google choose to use mono framework in android, xamarin apk size can reach several kb too. The reason for me to use Xamarin is the app developed by Xamarin using mono framework is faster than dalvik before ART time. The load time for the app is not my main concern. I care about the speed running the app for whole lifecycle. Here is the url <a href="https://blog.xamarin.com/android-in-c-sharp/" target="_blank">https://blog.xamarin.com/android-in-c-sharp/</a></div><div><br></div><div>Regards</div><span><font color="#888888"><div>Leigh</div></font></span></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On 29 July 2015 at 13:40, Jolyon Smith <span dir="ltr">&lt;<a href="mailto:jsmith@deltics.co.nz" target="_blank">jsmith@deltics.co.nz</a>&gt;</span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><div dir="ltr">What a fabulous attitude.  It&#39;s thanks to that sort of thinking that we now &quot;need&quot; machines with quad core 2.5GHz processors and 8GB of RAM just to run frikkin MS Word.​</div>
<br></span><span>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>