我遇到Xamarin声称他们在Android上的Mono实现和他们的C#编译应用程序比Java代码更快.有没有人对不同Android平台上非常相似的Java和C#代码执行实际基准来验证此类声明,是否可以发布代码和结果?
由于没有答案,也找不到其他人做的基准,所以决定自己做测试.不幸的是,我的问题仍然是"锁定",所以我不能将其作为答案发布,只编辑问题.请投票重新打开这个问题.对于C#,我使用了Xamarin.Android Ver.4.7.09001(测试版).源代码,我用于测试和编译的APK包的所有数据都在GitHub上:
Java:https://github.com/gregko/TtsSetup_Java
C#:https://github.com/gregko/TtsSetup_C_sharp
如果有人想在其他设备或模拟器上重复我的测试,我也有兴趣了解结果.
我将我的句子提取器类移植到C#(来自我的@Voice Aloud Reader应用程序),并对英语,俄语,法语,波兰语和捷克语的10个HTML文件进行了一些测试.所有10个文件的每次运行都执行了5次,下面发布了3个不同设备和一个模拟器的总时间.我只测试了"Release"版本,没有启用调试.
Java:总计时间(5次运行):12361 ms,文件读取总计:13304 ms
C#:总计时间(5次运行):17504 ms,文件读取总计:17956 ms
Java:总计时间(5次运行):8947 ms,文件读取总计:9186 ms
C#:总计时间(5次运行):9884 ms,文件读取总计:10247 ms
Java:总计时间(5次运行):9742 ms,文件读取总计:10111 ms
C#:总计时间(5次运行):10459 ms,文件读取总计:10696 ms
Java:总时间(5次运行):2699 ms,文件读取总数:3127 ms
C#:总计时间(5次运行):2049 ms,文件读数总计:2182 ms
Java:总计时间(5次运行):2992 ms,文件读取总计:3591 ms
C#:总计时间(5次运行):2049 ms,文件读取总数:2257 ms …
如何使用Xamarin for Android使用async/await在C#中实现回调?这与Android的标准Java编程相比如何?