首页 文章

monodroid是慢吗?

提问于
浏览
6

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

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

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

1 回答

  • 18

    我们不知道 .

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

    这就是我所知道的:

    • 当首次在G1上加载应用程序时,目前有大约3秒的启动惩罚开销(您的里程数会因硬件而异) . 这是因为初始化Mono运行时并加载引用的程序集 . 我们确实希望将来改进这一点 .

    • Mono和Mono for Android,JITs一切 . 与此同时,Dalvik有一个可变大小的JIT cache(目前在ARMv7上为1MB)和一个解释器,因此根据你的应用程序,可能(很可能)并非一切都将被JIT .

    • Mono for Android使用JNI调用Android / Java代码 .

    然后是koush's performance comparsion between Mono and Dalvik in 2009 . 这比Dalvik JIT早,但在相同的硬件上,Mono正在打击Dalvik .

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

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

    • Use a splash screen during app startup.这在应用启动期间提供即时反馈,这是大多数用户关心的 .

    • 如果可能的话,最小化Mono和Java代码之间的转换 . JNI将永远不会赢得任何性能奖章,因此如果您可以在Mono中执行更多代码而无需对Java方法进行中间调用,请执行此操作 .

    • 最小化同时保持活动的Java.Lang.Object实例的数量 . 跨VM GC引用可能会导致性能问题 .

相关问题