开始为Android和ios编写移动应用程序。
看看很多替代方案。无法忍受html5 / webview的事情。大多数时候它都很迟钝。我尝试了很多演示应用程序(phonegap / steroid ..)并且没有在家里感觉到。不够顺利。
更多,一些游戏即将到来:所以没办法。我想要一个NATIVE的发展。
就其本身而言,Objective-c不是问题。但是,如果我只用一个开发创建应用程序,使用易于编写的语言(java),那听起来不错。
CodenameOne claims greater performance than objective-c via their java vm.
也许他们正在使用C api,但是这个api现在主要是obj-c。
是否有些开发人员甚至创作者可以告诉我,我是否真的不必使用原生iOS语言(obj-c)编写代码并通过java vm获得更好的结果? 对我来说似乎很奇怪。
答案 0 :(得分:1)
您链接到的页面上的引用:
一个小小的免责声明是Objective-C基准测试对方法/消息调用有点沉重,这使得基准测试偏向于我们。由于该语言的语义,Codename One中的方法调用自然比等效的Objective-C代码快得多。
这不能解释你所问的究竟是什么吗? Objective-C有一个体系结构,因此无法优化动态调度,而Java的体系结构允许像单形调用站点甚至完整方法内联这样的东西。严重关注该方面的基准测试会使结果偏向于JVM,但实际应用程序的性能几乎从不受方法调度开销的影响。
答案 1 :(得分:1)
我对CodenameOne一无所知,但对Java-VM的一般行为一无所知
通常,java程序需要更多时间来启动,因为在执行之前必须编译中间java字节代码。然而,在执行期间,VM可以自由地执行运行时优化,例如,重新排列代码块以更好地利用CPU缓存等...
由于VM可以在运行时执行此步骤,因此具有静态编译器所不具备的知识,因此有时甚至可以超过优化的C代码。
可以在Jake2 (Quake2 ported to Java)找到比较C和Java的真实世界基准的旧例子。