monodroid是慢吗?

Gök*_*maz 6 c# android xamarin.android c#-4.0

我听说可以用C#开发一个android软件.(MonoDroid的)

但是当我研究它时,有人表示它会跑得更慢.

你怎么看?这是真的吗?使用C#有效吗?

jon*_*onp 18

我们不知道.

严肃地说,如果有人可以将Android Linpack应用程序移植到Mono for Android,那么我们可以在两者之间进行性能比较,这将非常方便.

这就是我知道的:

  • 当首次在G1上加载应用程序时,目前有大约3秒的启动惩罚开销(您的里程数会因硬件而异).这是因为初始化Mono运行时并加载引用的程序集.我们确实希望将来改进这一点.
  • Mono和Mono for Android,JITs 应有尽有.与此同时,Dalvik有一个可变大小的JIT 缓存(目前在ARMv7上为1MB)和一个解释器,因此根据你的应用程序,可能(很可能)不是所有东西都会被JIT.
  • Mono for Android使用JNI调用Android/Java代码.

然后是2009年Mono和Dalvik之间koush表现比较.这比Dalvik JIT早,但在相同的硬件上,Mono正在打击 Dalvik.

那么这一切意味着什么呢?我完全不知道.(再一次,Linpack到Mono for Android的端口会很精彩!提示提示,轻推nudge)

也就是说,有一些性能建议可以建议:

  1. 在应用启动期间使用启动画面.这在应用启动期间提供即时反馈,这是大多数用户关心的.
  2. 如果可能的话,最小化Mono和Java代码之间的转换.JNI将永远不会赢得任何性能奖章,因此如果您可以在Mono中执行更多代码而无需对Java方法进行中间调用,请执行此操作.
  3. 最小化同时保持活动的Java.Lang.Object实例的数量.跨VM GC引用可能会导致性能问题.