Haxe如何编译代码在性能上与其不同的目标进行比较?
例如,来自Haxe的PHP是否比原始PHP代码更快或更慢?
Javascript怎么样?闪? C ++?等
那里有没有严肃的基准?
答案 0 :(得分:15)
我不知道那里有什么基准测试,目标平台肯定会有所不同,所以我想这只是答案的一半。但这里有一些一般性观点:
如果您搜索,您可以找到几个基准测试,比较OpenFL / NME和Flash。一个例子是this one
对于CPP,我被告知事情比常规C ++略慢。我认为手动优化的C ++可以获得更快的速度。来自HXCPP here
对于JS,我知道Haxe坚持使用相对最佳的性能方法。例如,Haxe的严格类型性质倾向于使用Javascript JIT编译器获得最佳性能,因此Haxe代码与编写良好的Javascript相当。 (注意,我在这里谈论常规JS,而不是canvas / openFL图形的东西 - 显然这需要你自己的基准测试)。
对于PHP,我不确定Haxe如何生成PHP与手写PHP相比。我可以告诉你的是,你几乎可以无缝地从PHP切换到Neko(两者都可以轻松地在apache上运行),你会得到比手写PHP更快的代码。你的瓶颈将来自数据库访问等,而不是代码执行。
对于flash,搜索一下你可能会找到基准测试。 Haxe为您提供了一些编译时功能,例如泛型,类型安全和函数内联,这可以帮助运行时性能。
<强>总体强>
Haxe带来的最大性能提升不是将其与同一语言的手写代码进行比较,而是可以毫不费力地切换到更快的平台。用PHP写,切换到neko - &gt;巨大的加速。写入Flash,切换到OpenFL(C ++) - &gt;巨大的加速。
希望其他人可以发布更多相关基准的链接:)
答案 1 :(得分:2)
您可以查看这篇文章。它比较了Haxe编译器。 PHP似乎是5个目标编译器中最慢的。 https://hal.inria.fr/hal-01356849/document